58 lines
849 B
C
58 lines
849 B
C
#ifndef lint
|
|
static char sccsid[] = "@(#)mkey3.c 1.1 94/10/31 SMI"; /* from UCB 4.1 5/6/83 */
|
|
#endif
|
|
|
|
#include <stdio.h>
|
|
#define COMNUM 500
|
|
#define COMTSIZE 997
|
|
|
|
char *comname = "/usr/lib/eign";
|
|
static int cgate = 0;
|
|
extern char *comname;
|
|
int comcount = 100;
|
|
static char cbuf[COMNUM*9];
|
|
static char *cwds[COMTSIZE];
|
|
static char *cbp;
|
|
|
|
common (s)
|
|
char *s;
|
|
{
|
|
if (cgate==0) cominit();
|
|
return (c_look(s, 1));
|
|
}
|
|
|
|
cominit()
|
|
{
|
|
int i;
|
|
FILE *f;
|
|
cgate=1;
|
|
f = fopen(comname, "r");
|
|
if (f==NULL) 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);
|
|
}
|
|
|
|
c_look (s, fl)
|
|
char *s;
|
|
{
|
|
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);
|
|
}
|