
#define SUBSETLIB  /* addition for searching subsets of databanks, dgg */

#ifdef UNIX
#define NCBIBL13 11
#define LASTLIB NCBIBL13+1
#else
#define LASTLIB 10
#endif

#define DEFAULT 0
#define FULLGB 1
#define UNIXPIR 2
#define EMBLSWISS 3
#define INTELLIG 4
#define VMSPIR 5
#define LASTTXT 5

#ifdef SUBSETLIB
#define SUBLIB  12
#undef  LASTLIB  
#define LASTLIB SUBLIB+1
#endif

extern int (*getlib)(), (*ranlib)();

int agetlib(),aranlib();	/* pearson fasta format */
int lgetlib(),lranlib();	/* full uncompressed GB FULLGB*/
int pgetlib(),pranlib();	/* PIR UNIX protein UNIXPIR */
int egetlib(),eranlib();	/* EMBL/SWISS-PROT EMBLSWISS */
int igetlib(),iranlib();	/* Intelligenetics INTELLIG */
int vgetlib(),vranlib();	/* PIR VMS format */
#ifdef SUBSETLIB
int subset_getlib(),subset_ranlib();	/* Subset indices into libraries format */
#endif  

#ifdef BIGMEM
extern int ncbl_getliba(), ncbl_ranlib(); /* ncbi blast 1.3 format */
#endif

#ifndef XTERNAL

int (*getliba[LASTLIB])()={
	agetlib,lgetlib,pgetlib,egetlib,
	igetlib,vgetlib,agetlib,agetlib,
	agetlib,agetlib
#ifdef NCBIBL13
	,agetlib,ncbl_getliba
#endif
#ifdef SUBSETLIB
#ifndef NCBIBL13
	,agetlib,agetlib
#endif
	,subset_getlib
#endif
        };
        
int (*ranliba[LASTLIB])()={
	aranlib,lranlib,pranlib,eranlib,
	iranlib,vranlib,aranlib,aranlib,
	aranlib,aranlib
#ifdef NCBIBL13
	,aranlib,ncbl_ranlib
#endif
#ifdef SUBSETLIB
#ifndef NCBIBL13
	,aranlib,aranlib
#endif
	,subset_ranlib
#endif
        };
        
#else
extern int (*getliba[LASTLIB])();
extern int (*ranliba[LASTLIB])();
#endif


#ifdef SUBSETLIB
#ifndef VMS
#define FILEtype FILE*
#else
#define FILEtype int
#endif

FILEtype setlib( FILEtype newlib); /* returns oldlib */ 
#endif  /*SUBSETLIB*/

