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