Annotation of researchv10dc/cmd/m4/m4ext.c, revision 1.1.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.