Annotation of researchv10dc/cmd/m4/m4ext.c, revision 1.1

1.1     ! root        1: #include       <stdio.h>
        !             2: #include       "m4.h"
        !             3: 
        !             4: 
        !             5: /* storage params */
        !             6: int    hshsize         = 199;          /* hash table size (prime) */
        !             7: int    bufsize         = 4096;         /* pushback & arg text buffers */
        !             8: int    stksize         = 100;          /* call stack */
        !             9: int    toksize         = 512;          /* biggest word ([a-z_][a-z0-9_]*) */
        !            10: 
        !            11: 
        !            12: /* pushback buffer */
        !            13: char   *ibuf;                          /* buffer */
        !            14: char   *ibuflm;                        /* highest buffer addr */
        !            15: char   *ip;                            /* current position */
        !            16: char   *ipflr;                         /* buffer floor */
        !            17: char   *ipstk[10];                     /* stack for "ipflr"s */
        !            18: 
        !            19: 
        !            20: /* arg collection buffer */
        !            21: char   *obuf;                          /* buffer */
        !            22: char   *obuflm;                        /* high address */
        !            23: char   *op;                            /* current position */
        !            24: 
        !            25: 
        !            26: /* call stack */
        !            27: struct call    *callst;                /* stack */
        !            28: struct call    *Cp     = NULL;         /* position */
        !            29: 
        !            30: 
        !            31: /* token storage */
        !            32: char   *token;                         /* buffer */
        !            33: char   *toklm;                         /* high addr */
        !            34: 
        !            35: 
        !            36: /* file name and current line storage for line sync and diagnostics */
        !            37: char   fnbuf[200];                     /* holds file name strings */
        !            38: char   *fname[11]      = {fnbuf};      /* file name ptr stack */
        !            39: int    fline[10];                      /* current line nbr stack */
        !            40: 
        !            41: 
        !            42: /* input file stuff for "include"s */
        !            43: FILE   *ifile[10]      = {stdin};      /* stack */
        !            44: int    ifx;                            /* stack index */
        !            45: 
        !            46: 
        !            47: /* stuff for output diversions */
        !            48: FILE   *cf     = stdout;               /* current output file */
        !            49: FILE   *ofile[11]      = {stdout};     /* output file stack */
        !            50: int    ofx;                            /* stack index */
        !            51: 
        !            52: 
        !            53: /* comment markers */
        !            54: char   lcom[MAXSYM+1]  = "#";
        !            55: char   rcom[MAXSYM+1]  = "\n";
        !            56: 
        !            57: 
        !            58: /* quote markers */
        !            59: char   lquote[MAXSYM+1]        = "`";
        !            60: char   rquote[MAXSYM+1]        = "'";
        !            61: 
        !            62: 
        !            63: /* argument ptr stack */
        !            64: char   **argstk;
        !            65: char   **astklm;                       /* high address */
        !            66: char   **Ap;                           /* current position */
        !            67: 
        !            68: 
        !            69: /* symbol table */
        !            70: struct nlist   **hshtab;               /* hash table */
        !            71: int    hshval;                         /* last hash val */
        !            72: 
        !            73: 
        !            74: /* misc */
        !            75: char   *procnam;                       /* argv[0] */
        !            76: char   *tempname;                      /* used for diversion files */
        !            77: char   *Wrapstr;                       /* last pushback string for "m4wrap" */
        !            78: char   nullstr[]       = "";
        !            79: int    C;                              /* see "m4.h" macros */
        !            80: int    nflag   = 1;                    /* name flag, used for line sync code */
        !            81: int    sflag;                          /* line sync flag */
        !            82: int    sysrval;                        /* return val from syscmd */
        !            83: int    trace;                          /* global trace flag */
        !            84: 
        !            85: 
        !            86: char   aofmsg[]        = "more than %d chars of argument text";
        !            87: char   astkof[]        = "more than %d items on argument stack";
        !            88: char   badfile[]       = "can't open file";
        !            89: char   nocore[]        = "out of storage";
        !            90: char   pbmsg[]         = "pushed back more than %d chars";
        !            91: 
        !            92: 
        !            93: /* char map */
        !            94: char   type[]  = {
        !            95:        0,      0,      0,      0,      0,      0,      0,      0,
        !            96:        0,      SPACE,  SPACE,  SPACE,  SPACE,  SPACE,  0,      0,
        !            97:        0,      0,      0,      0,      0,      0,      0,      0,
        !            98:        0,      0,      0,      0,      0,      0,      0,      0,
        !            99:        SPACE,  0,      0,      0,      0,      0,      0,      0,
        !           100:        0,      0,      0,      0,      0,      0,      0,      0,
        !           101:        DIG,    DIG,    DIG,    DIG,    DIG,    DIG,    DIG,    DIG,
        !           102:        DIG,    DIG,    0,      0,      0,      0,      0,      0,
        !           103:        0,      ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,
        !           104:        ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,
        !           105:        ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,
        !           106:        ALPH,   ALPH,   ALPH,   0,      0,      0,      0,      ALPH,
        !           107:        0,      ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,
        !           108:        ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,
        !           109:        ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,   ALPH,
        !           110:        ALPH,   ALPH,   ALPH,   0,      0,      0,      0,      0,
        !           111: };

unix.superglobalmegacorp.com

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