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