/*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. * * This module is believed to contain source code proprietary to AT&T. * Use and redistribution is subject to the Berkeley Software License * Agreement and your Software Agreement with AT&T (Western Electric). */ #ifndef lint static char copyright[] = "@(#) Copyright (c) 1991, 1993\n\ The Regents of the University of California. All rights reserved.\n"; #endif /* not lint */ #ifndef lint static char sccsid[] = "@(#)spellin.c 8.1 (Berkeley) 6/6/93"; #endif /* not lint */ #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) int argc; 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); }