# 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;
}
|