home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / spell / spellin.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  843 b   |  41 lines

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