# include "mkey.h" char *comname = "/lib/eign"; static int cgate = 0; extern char *comname; # define COMNUM 500 # define COMTSIZE 997 int comcount = 100; static char cbuf[COMNUM*9]; static char *cwds[COMTSIZE]; static char *cbp; static void cominit(void); static int c_look(char *, int); int common(char *s) { if (cgate == 0) cominit(); return c_look(s, 1); } static void cominit(void) { int i; FILE *f; cgate = 1; f = fopen(comname, "r"); if (f == NULL) { warn(0, "can't open %s", comname); return; } cbp = cbuf; for (i = 0; i < comcount; i++) { if (fgets(cbp, 15, f) == NULL) break; trimnl(cbp); c_look(cbp, 0); while (*cbp++) ; } fclose(f); } static int c_look(char *s, int fl) { int h; h = hash(s) % (COMTSIZE); while (cwds[h] != 0) { if (strcmp(s, cwds[h]) == 0) return 1; h = (h + 1) % (COMTSIZE); } if (fl == 0) cwds[h] = s; return 0; }