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