xref: /csrg-svn/old/refer/mkey/mkey3.c (revision 48299)
1*48299Sbostic /*-
2*48299Sbostic  * %sccs.include.proprietary.c%
3*48299Sbostic  */
4*48299Sbostic 
512301Stut #ifndef lint
6*48299Sbostic static char sccsid[] = "@(#)mkey3.c	4.3 (Berkeley) 04/18/91";
7*48299Sbostic #endif /* not lint */
812301Stut 
912301Stut #include <stdio.h>
1037895Sbostic #include "pathnames.h"
1137895Sbostic 
1212301Stut #define COMNUM 500
1312301Stut #define COMTSIZE 997
1412301Stut 
1537895Sbostic char *comname = _PATH_EIGN;
1612301Stut static int cgate = 0;
1712301Stut extern char *comname;
1812301Stut int comcount = 100;
1912301Stut static char cbuf[COMNUM*9];
2012301Stut static char *cwds[COMTSIZE];
2112301Stut static char *cbp;
2212301Stut 
common(s)2312301Stut common (s)
2412301Stut char *s;
2512301Stut {
2612301Stut 	if (cgate==0) cominit();
2712301Stut 	return (c_look(s, 1));
2812301Stut }
2912301Stut 
cominit()3012301Stut cominit()
3112301Stut {
3212301Stut 	int i;
3312301Stut 	FILE *f;
3412301Stut 	cgate=1;
3512301Stut 	f = fopen(comname, "r");
3612301Stut 	if (f==NULL) return;
3712301Stut 	cbp=cbuf;
3812301Stut 	for(i=0; i<comcount; i++)
3912301Stut 	{
4012301Stut 		if (fgets(cbp, 15, f)==NULL)
4112301Stut 			break;
4212301Stut 		trimnl(cbp);
4312301Stut 		c_look (cbp, 0);
4412301Stut 		while (*cbp++);
4512301Stut 	}
4612301Stut 	fclose(f);
4712301Stut }
4812301Stut 
c_look(s,fl)4912301Stut c_look (s, fl)
5012301Stut char *s;
5112301Stut {
5212301Stut 	int h;
5312301Stut 	h = hash(s) % (COMTSIZE);
5412301Stut 	while (cwds[h] != 0)
5512301Stut 	{
5612301Stut 		if (strcmp(s, cwds[h])==0)
5712301Stut 			return(1);
5812301Stut 		h = (h+1) % (COMTSIZE);
5912301Stut 	}
6012301Stut 	if (fl==0)
6112301Stut 		cwds[h] = s;
6212301Stut 	return(0);
6312301Stut }
64