update from George Bergman (gbergman@cartan.berkeley.edu)
[unix-history] / usr / src / usr.bin / spell / spellin.c
CommitLineData
427b4684
SL
1#ifndef lint
2static char sccsid[] = "@(#)spellin.c 4.1 %G%";
3#endif
4
5#include "spell.h"
6/* add entries to hash table for use by spell
7 preexisting hash table is first argument
8 words to be added are standard input
9 if no hash table is given, create one from scratch
10*/
11
12main(argc,argv)
13char **argv;
14{
15 register i, j;
16 long h;
17 register long *lp;
18 char word[NW];
19 register char *wp;
20
21 if(!prime(argc,argv)) {
22 fprintf(stderr,
23 "spellin: cannot initialize hash table\n");
24 exit(1);
25 }
26 while (fgets(word, sizeof(word), stdin)) {
27 for (i=0; i<NP; i++) {
28 for (wp = word, h = 0, lp = pow2[i];
29 (j = *wp) != '\0'; ++wp, ++lp)
30 h += j * *lp;
31 h %= p[i];
32 set(h);
33 }
34 }
35#ifdef gcos
36 freopen((char *)NULL, "wi", stdout);
37#endif
38 if (fwrite((char *)tab, sizeof(*tab), TABSIZE, stdout) != TABSIZE) {
39 fprintf(stderr,
40 "spellin: trouble writing hash table\n");
41 exit(1);
42 }
43 return(0);
44}