xref: /original-bsd/contrib/bib/src/bib.h (revision 99c1622c)
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