1: # include "stdio.h" 2: char *comname "/usr/lib/eign"; 3: static int cgate 0; 4: extern char *comname; 5: # define COMNUM 500 6: # define COMTSIZE 997 7: int comcount 100; 8: static char cbuf[COMNUM*9]; 9: static char *cwds[COMTSIZE]; 10: static char *cbp; 11: 12: common (s) 13: char *s; 14: { 15: if (cgate==0) cominit(); 16: return (c_look(s, 1)); 17: } 18: cominit() 19: { 20: int i; 21: FILE *f; 22: cgate=1; 23: f = fopen(comname, "r"); 24: if (f==NULL) return; 25: cbp=cbuf; 26: for(i=0; i<comcount; i++) 27: { 28: if (fgets(cbp, 15, f)==NULL) 29: break; 30: trimnl(cbp); 31: c_look (cbp, 0); 32: while (*cbp++); 33: } 34: fclose(f); 35: } 36: c_look (s, fl) 37: char *s; 38: { 39: int h; 40: h = hash(s) % (COMTSIZE); 41: while (cwds[h] != 0) 42: { 43: if (strcmp(s, cwds[h])==0) 44: return(1); 45: h = (h+1) % (COMTSIZE); 46: } 47: if (fl==0) 48: cwds[h] = s; 49: return(0); 50: }