Annotation of researchv9/cmd/egrep/main.c, revision 1.1

1.1     ! root        1: #include       "hdr.h"
        !             2: 
        !             3: State states[NSTATES];
        !             4: State *nxtst();
        !             5: int state[NSTATES];
        !             6: int line = 1;
        !             7: int name[MAXLIN];
        !             8: int left[MAXLIN];
        !             9: int right[MAXLIN];
        !            10: int parent[MAXLIN];
        !            11: int foll[MAXLIN];
        !            12: int positions[MAXPOS];
        !            13: char chars[MAXLIN];
        !            14: int nxtpos = 0;
        !            15: int inxtpos;
        !            16: int nxtchar = 0;
        !            17: int tmpstat[MAXLIN];
        !            18: int begstat[MAXLIN];
        !            19: int colpos[MAXLIN];
        !            20: State *istat;
        !            21: int nstate = 1;
        !            22: int xstate;
        !            23: int count;
        !            24: int icount;
        !            25: char *input;
        !            26: 
        !            27: char reinit = 0;
        !            28: 
        !            29: long   lnum;
        !            30: int    bflag;
        !            31: int    cflag;
        !            32: int    fflag;
        !            33: int    hflag = 1;
        !            34: int    iflag;
        !            35: int    lflag;
        !            36: int    nflag;
        !            37: int    sflag;
        !            38: int    vflag;
        !            39: int    nfile;
        !            40: long   tln;
        !            41: int    nsucc;
        !            42: int    badbotch;
        !            43: 
        !            44: int    expfile;
        !            45: int    bmegrep = 0;
        !            46: 
        !            47: main(argc, argv)
        !            48: char **argv;
        !            49: {
        !            50:        int (*fn)(), execute(), bmexecute();
        !            51:        int etext();
        !            52:        char buf[2048];
        !            53: 
        !            54: 
        !            55:        while (--argc > 0 && (++argv)[0][0]=='-')
        !            56:                switch (argv[0][1]) {
        !            57: 
        !            58:                case 'b':
        !            59:                        bflag++;
        !            60:                        continue;
        !            61: 
        !            62:                case 'c':
        !            63:                        cflag++;
        !            64:                        continue;
        !            65: 
        !            66:                case 'e':
        !            67:                        argc--;
        !            68:                        argv++;
        !            69:                        goto cut;
        !            70: 
        !            71:                case 'f':
        !            72:                        fflag++;
        !            73:                        continue;
        !            74: 
        !            75:                case 'h':
        !            76:                        hflag = 0;
        !            77:                        continue;
        !            78: 
        !            79:                case 'i':
        !            80:                        iflag++;
        !            81:                        continue;
        !            82: 
        !            83:                case 'l':
        !            84:                        lflag++;
        !            85:                        continue;
        !            86: 
        !            87:                case 'n':
        !            88:                        nflag++;
        !            89:                        continue;
        !            90: 
        !            91:                case 's':
        !            92:                        sflag++;
        !            93:                        continue;
        !            94: 
        !            95:                case 'v':
        !            96:                        vflag++;
        !            97:                        continue;
        !            98: 
        !            99:                default:
        !           100:                        fprint(2, "egrep: unknown flag\n");
        !           101:                        continue;
        !           102:                }
        !           103: cut:
        !           104:        if (argc<=0)
        !           105:                exit(2);
        !           106:        if (fflag) {
        !           107:                if ((expfile = open(*argv, 0)) < 0) {
        !           108:                        fprint(2, "egrep: can't open %s\n", *argv);
        !           109:                        exit(2);
        !           110:                }
        !           111:        }
        !           112:        else input = *argv;
        !           113:        Finit(1, (char *)0);
        !           114:        argc--;
        !           115:        argv++;
        !           116: 
        !           117:        /*mailprep();/**/
        !           118:        yyparse();
        !           119: maildone();
        !           120:        if(!vflag && islit(buf)){
        !           121:                bmprep(buf);
        !           122:                fn = bmexecute;
        !           123:        } else
        !           124:                fn = execute;
        !           125: 
        !           126:        cgotofn();
        !           127:        nfile = argc;
        !           128:        if (argc<=0) {
        !           129:                if (lflag) exit(1);
        !           130:                (*fn)((char *)0);
        !           131:        }
        !           132:        else while (--argc >= 0) {
        !           133:                if (reinit == 1) clearg();
        !           134:                (*fn)(*argv++);
        !           135:        }
        !           136:        exit(badbotch ? 2 : nsucc==0);
        !           137: }

unix.superglobalmegacorp.com

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