# include "stdio.h" extern char *comname; /* "/usr/lib/eign" */ int wholefile = 0; int keycount = 100; int labels = 1; int minlen = 3; extern int comcount; char *iglist "XYZ#"; main (argc,argv) char *argv[]; { /* this program expects as its arguments a list of files and generates a set of lines of the form filename:byte-add,length (tab) key1 key2 key3 where the byte addresses give the position within the file and the keys are the strings off the lines which are alphabetic, first six characters only. */ int i; char *name, qn[200]; char *inlist 0; FILE *f, *ff; while (argc>1 && argv[1][0] == '-') { switch(argv[1][1]) { case 'c': comname = argv[2]; argv++; argc--; break; case 'w': wholefile = 1; break; case 'f': inlist = argv[2]; argv++; argc--; break; case 'i': iglist = argv[2]; argv++; argc--; break; case 'l': minlen = atoi(argv[1]+2); if (minlen<=0) minlen=3; break; case 'n': /* number of common words to use */ comcount = atoi(argv[1]+2); break; case 'k': /* number of keys per file max */ keycount = atoi(argv[1]+2); break; case 's': /* suppress labels, search only */ labels = 0; break; } argc--; argv++; } if (inlist) { ff = fopen(inlist, "r"); while (fgets(qn, 200, ff)) { trimnl(qn); f = fopen (qn, "r"); if (f!=NULL) dofile(f, qn); else fprintf(stderr, "Can't read %s\n",qn); } } else if (argc<=1) dofile(stdin, ""); else for(i=1; i