#include <stdio.h>
#include <strings.h>

extern int initialize_hash_tables();
extern char *malloc();

main(argc, argv)
int argc;
char *argv[];
{
     char *word, *retval;
     short min_letters, max_letters;
     int garbage;
     char *word_dir = 0;

     if ((argc < 3) || (argc > 4)) {
	  fprintf(stderr, "usage: checkword [word_dir] min_letters max_letters\n");
	  exit(1);
     }
     if (argc == 4) {
	  word_dir = argv[1];
	  argv++, argc--;
     }

     min_letters = atoi(argv[1]);
     max_letters = atoi(argv[2]);

     if (word_dir)
	  garbage = initialize_hash_tables_dir(word_dir, min_letters,
					       max_letters);
     else
	  garbage = initialize_hash_tables(min_letters, max_letters);
	  
     if (garbage) {
	  fprintf(stderr, "Couldn't initialize hash tables!\n");
	  exit(1);
     }
     word = malloc(max_letters + 1);
     if (! word) {
	  perror("checkword");
	  exit(1);
     }
     while(1) {
	  fprintf(stdout, "Word: ");
	  fflush(stdout);
	  retval = fgets(word, max_letters + 1, stdin);
	  if ((*word == '\n') || (retval == (char *) NULL))
	       exit(0);
	  if (retval = index(word, '\n'))
	       *retval = '\0';
	  else 
	       for (garbage = getc(stdin);
		    (garbage != '\n') && (garbage != EOF);
		    garbage = getc(stdin));
	  if (check_word(word))
	       printf("%s is a word.\n", word);
	  else
	       printf("%s is not a word.\n", word);
     }
}
