xref: /original-bsd/old/refer/mkey/mkey3.c (revision 6219b5e8)
1 #ifndef lint
2 static char *sccsid = "@(#)mkey3.c	4.1 (Berkeley) 05/06/83";
3 #endif
4 
5 #include <stdio.h>
6 #define COMNUM 500
7 #define COMTSIZE 997
8 
9 char *comname = "/usr/lib/eign";
10 static int cgate = 0;
11 extern char *comname;
12 int comcount = 100;
13 static char cbuf[COMNUM*9];
14 static char *cwds[COMTSIZE];
15 static char *cbp;
16 
17 common (s)
18 char *s;
19 {
20 	if (cgate==0) cominit();
21 	return (c_look(s, 1));
22 }
23 
24 cominit()
25 {
26 	int i;
27 	FILE *f;
28 	cgate=1;
29 	f = fopen(comname, "r");
30 	if (f==NULL) return;
31 	cbp=cbuf;
32 	for(i=0; i<comcount; i++)
33 	{
34 		if (fgets(cbp, 15, f)==NULL)
35 			break;
36 		trimnl(cbp);
37 		c_look (cbp, 0);
38 		while (*cbp++);
39 	}
40 	fclose(f);
41 }
42 
43 c_look (s, fl)
44 char *s;
45 {
46 	int h;
47 	h = hash(s) % (COMTSIZE);
48 	while (cwds[h] != 0)
49 	{
50 		if (strcmp(s, cwds[h])==0)
51 			return(1);
52 		h = (h+1) % (COMTSIZE);
53 	}
54 	if (fl==0)
55 		cwds[h] = s;
56 	return(0);
57 }
58