Commit | Line | Data |
---|---|---|
2b1a705e TL |
1 | # include "stdio.h" |
2 | extern char *comname; /* "/usr/lib/eign" */ | |
3 | int wholefile = 0; | |
4 | int keycount = 100; | |
5 | int labels = 1; | |
6 | int minlen = 3; | |
7 | extern int comcount; | |
8 | char *iglist = "XYZ"; | |
9 | ||
10 | main (argc,argv) | |
11 | char *argv[]; | |
12 | { | |
13 | /* this program expects as its arguments a list of | |
14 | files and generates a set of lines of the form | |
15 | filename:byte-add,length (tab) key1 key2 key3 | |
16 | where the byte addresses give the position within | |
17 | the file and the keys are the strings off the lines | |
18 | which are alphabetic, first six characters only. | |
19 | */ | |
20 | ||
21 | int i; | |
22 | char *name, qn[200]; | |
23 | char *inlist = 0; | |
24 | ||
25 | FILE *f, *ff; | |
26 | ||
27 | while (argc>1 && argv[1][0] == '-') | |
28 | { | |
29 | switch(argv[1][1]) | |
30 | { | |
31 | case 'c': | |
32 | comname = argv[2]; | |
33 | argv++; argc--; | |
34 | break; | |
35 | case 'w': | |
36 | wholefile = 1; break; | |
37 | case 'f': | |
38 | inlist = argv[2]; | |
39 | argv++; argc--; | |
40 | break; | |
41 | case 'i': | |
42 | iglist = argv[2]; | |
43 | argv++; argc--; | |
44 | break; | |
45 | case 'l': | |
46 | minlen = atoi(argv[1]+2); | |
47 | if (minlen<=0) minlen=3; | |
48 | break; | |
49 | case 'n': /* number of common words to use */ | |
50 | comcount = atoi(argv[1]+2); | |
51 | break; | |
52 | case 'k': /* number of keys per file max */ | |
53 | keycount = atoi(argv[1]+2); | |
54 | break; | |
55 | case 's': /* suppress labels, search only */ | |
56 | labels = 0; | |
57 | break; | |
58 | } | |
59 | argc--; argv++; | |
60 | } | |
61 | if (inlist) | |
62 | { | |
63 | ff = fopen(inlist, "r"); | |
64 | while (fgets(qn, 200, ff)) | |
65 | { | |
66 | trimnl(qn); | |
67 | f = fopen (qn, "r"); | |
68 | if (f!=NULL) | |
69 | dofile(f, qn); | |
70 | else | |
71 | fprintf(stderr, "Can't read %s\n",qn); | |
72 | } | |
73 | } | |
74 | else | |
75 | if (argc<=1) | |
76 | dofile(stdin, ""); | |
77 | else | |
78 | for(i=1; i<argc; i++) | |
79 | { | |
80 | f = fopen(name=argv[i], "r"); | |
81 | if (f==NULL) | |
82 | err("No file %s",name); | |
83 | else | |
84 | dofile(f, name); | |
85 | } | |
86 | exit(0); | |
87 | } |