1e02f99adSrrh /* 2*99c1622cSbostic * @(#)bib.h 2.8 05/27/93 3e02f99adSrrh */ 410f5d10dSgarrison /* various arguments for bib and listrefs processors */ 510f5d10dSgarrison 610f5d10dSgarrison /* constants */ 710f5d10dSgarrison 810f5d10dSgarrison # define true 1 910f5d10dSgarrison # define false 0 10*99c1622cSbostic # define bool unsigned char 1110f5d10dSgarrison # define err -1 124df75f31Sgarrison # define REFSIZE 2048 /* maximum size of reference string */ 132b82394bSgarrison # define MAXFIELD 512 /* maximum size of any field in referece*/ 1410f5d10dSgarrison 1510f5d10dSgarrison /* reference citation marker genrated in pass 1 */ 1610f5d10dSgarrison 1710f5d10dSgarrison # define CITEMARK (char) 02 1810f5d10dSgarrison # define CITEEND (char) 03 193521c787Srrh # define FMTSTART (char) 04 203521c787Srrh # define FMTEND (char) 05 2110f5d10dSgarrison 2210f5d10dSgarrison /* file names */ 2310f5d10dSgarrison 2410f5d10dSgarrison /* output of invert, input file for references */ 2510f5d10dSgarrison # define INDXFILE "INDEX" 2610f5d10dSgarrison /* pass1 reference collection file */ 27f2753a3eSrrh # define TMPREFFILE "/tmp/bibrXXXXXX" 2810f5d10dSgarrison /* pass2 text collection file */ 29f2753a3eSrrh # define TMPTEXTFILE "/tmp/bibpXXXXXX" 3010f5d10dSgarrison /* temp file used in invert */ 31f2753a3eSrrh # define INVTEMPFILE "/tmp/invertXXXXXX" 3267300d18Srrh # define SYSINDEX "/usr/dict/papers/INDEX" /* default system dictionary */ 3367300d18Srrh 34*99c1622cSbostic #ifndef BASEDIR 35*99c1622cSbostic # define BASEDIR "" 36*99c1622cSbostic # endif 37*99c1622cSbostic 38*99c1622cSbostic # define N_BMACLIB "/lib/bmac" /* where macro libraries live */ 39*99c1622cSbostic # define N_COMFILE "/lib/bmac/common" /* common words */ 40*99c1622cSbostic # define N_DEFSTYLE "/lib/bmac/bib.stdsn" /* default style of refs */ 41*99c1622cSbostic 42*99c1622cSbostic # define InitDirectory(arr,str) \ 43*99c1622cSbostic strcpy(arr,BASEDIR); strcat(arr,str); 44*99c1622cSbostic 45*99c1622cSbostic char BMACLIB[100], COMFILE[100], DEFSTYLE[100]; 4610f5d10dSgarrison 4710f5d10dSgarrison /* size limits */ 4810f5d10dSgarrison 4910f5d10dSgarrison /* maximum number of characters in common file */ 502b82394bSgarrison # define MAXCOMM 1000 5110f5d10dSgarrison 5210f5d10dSgarrison char *malloc(); 532b82394bSgarrison 542b82394bSgarrison /* fix needed for systems where open [w]+ doesn't work */ 552b82394bSgarrison # ifdef READWRITE 562b82394bSgarrison 572b82394bSgarrison # define READ 1 582b82394bSgarrison # define WRITE 0 592b82394bSgarrison 602b82394bSgarrison #endif 61f2753a3eSrrh /* 62f2753a3eSrrh * Reference information 63f2753a3eSrrh */ 64f2753a3eSrrh struct refinfo{ 653521c787Srrh char *ri_ref; /* actual value, base value */ 66f2753a3eSrrh char *ri_cite; /* citation string */ 673521c787Srrh char ri_disambig[2]; /* disambiguation string */ 68f2753a3eSrrh int ri_length; /* length of reference string, plus null */ 69f2753a3eSrrh long int ri_pos; /* reference seek position */ 70f2753a3eSrrh int ri_n; /* number of citation in pass1 */ 71f2753a3eSrrh struct refinfo *ri_hp; /* hash chain */ 72f2753a3eSrrh }; 73f2753a3eSrrh struct wordinfo{ 74f2753a3eSrrh char *wi_word; /* actual word */ 75f2753a3eSrrh char *wi_def; /* actual definition */ 76f2753a3eSrrh int wi_length; /* word length */ 77*99c1622cSbostic bool wi_expanding; /* is it being expanded? */ 78f2753a3eSrrh struct wordinfo *wi_hp; /* hash chain */ 79f2753a3eSrrh }; 80f2753a3eSrrh int strhash(); 81f2753a3eSrrh #define HASHSIZE 509 82f2753a3eSrrh 83f2753a3eSrrh #define reg register 84*99c1622cSbostic 85