Annotation of 42BSD/usr.bin/refer/mkey1.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.