home *** CD-ROM | disk | FTP | other *** search
- # 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);
- }
-