+#ifndef lint
+static char sccsid[] = "@(#)spellin.c 4.1 %G%";
+#endif
+
+#include "spell.h"
+/* add entries to hash table for use by spell
+ preexisting hash table is first argument
+ words to be added are standard input
+ if no hash table is given, create one from scratch
+*/
+
+main(argc,argv)
+char **argv;
+{
+ register i, j;
+ long h;
+ register long *lp;
+ char word[NW];
+ register char *wp;
+
+ if(!prime(argc,argv)) {
+ fprintf(stderr,
+ "spellin: cannot initialize hash table\n");
+ exit(1);
+ }
+ while (fgets(word, sizeof(word), stdin)) {
+ for (i=0; i<NP; i++) {
+ for (wp = word, h = 0, lp = pow2[i];
+ (j = *wp) != '\0'; ++wp, ++lp)
+ h += j * *lp;
+ h %= p[i];
+ set(h);
+ }
+ }
+#ifdef gcos
+ freopen((char *)NULL, "wi", stdout);
+#endif
+ if (fwrite((char *)tab, sizeof(*tab), TABSIZE, stdout) != TABSIZE) {
+ fprintf(stderr,
+ "spellin: trouble writing hash table\n");
+ exit(1);
+ }
+ return(0);
+}