#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
  FILE *wordfile;
  char *buffer, *word, *filename;
  int first=0, last=0, i, c, wordlen, wordno = 0;

  word = argv[1]; filename = argv[2]; wordlen = strlen(word);
  buffer = malloc(wordlen+1);
  wordfile = fopen(filename, "r");

  for (;;) {

    buffer[i = 0] = '\0';
    for (;;) {
      c = fgetc(wordfile);
      if (c == '\n') {
        wordno += 1;
	//fprintf(stdout, "'%s' vs '%s'\n", word, buffer);
        if (strcmp(buffer, word) == 0) {
          first = wordno;
          fprintf(stdout, "wordno %d of ", wordno);
        }
        break;
      } else if (c == EOF) {
        last = wordno;
        fprintf(stdout, "%d (%d.%c%% done)\n", wordno, first*100/last, (first*1000/last)%10+'0');
        exit(0);
      }
      if (i <= wordlen) buffer[i++] = c;
      buffer[i] = '\0';
      if (c == EOF) break;
    }
  }
}
