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