+# 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<argc; i++)
+ {
+ f = fopen(name=argv[i], "r");
+ if (f==NULL)
+ err("No file %s",name);
+ else
+ dofile(f, name);
+ }
+exit(0);
+}