Annotation of researchv10no/cmd/tbl/te.c, revision 1.1

1.1     ! root        1:  /* te.c: error message control, input line count */
        !             2: # include "t..c"
        !             3: error(s)
        !             4:        char *s;
        !             5: {
        !             6: fprintf(stderr, "\n%s: line %d: %s\n", ifile, iline, s);
        !             7: # ifdef unix
        !             8: fprintf(stderr, "tbl quits\n");
        !             9: exit(1);
        !            10: # endif
        !            11: # ifdef gcos
        !            12: fprintf(stderr, "run terminated due to error condition detected by tbl preprocessor\n");
        !            13: exit(0);
        !            14: # endif
        !            15: }
        !            16: char *gets1(s, size)
        !            17:        char *s;
        !            18:        int size;
        !            19: {
        !            20: char *p, *ns;
        !            21: int nbl = 0;
        !            22: iline++;
        !            23: ns = s;
        !            24: p=fgets(s,size,tabin);
        !            25: while (p==0)
        !            26:        {
        !            27:        if (swapin()==0)
        !            28:                return(0);
        !            29:        p = fgets(s,size,tabin);
        !            30:        }
        !            31: 
        !            32: while (*s) s++;
        !            33: s--;
        !            34: if (*s == '\n') *s-- =0;
        !            35: else error("input buffer too small");
        !            36: for(nbl=0; *s == '\\' && s>p; s--)
        !            37:        nbl++;
        !            38: if (linstart && nbl % 2) /* fold escaped nl if in table */
        !            39:        gets1(s+1, size - (s-ns));
        !            40: 
        !            41: return(p);
        !            42: }
        !            43: # define BACKMAX 500
        !            44: char backup[BACKMAX];
        !            45: char *backp = backup;
        !            46: un1getc(c)
        !            47: {
        !            48: if (c=='\n')
        !            49:        iline--;
        !            50: *backp++ = c;
        !            51: if (backp >= backup+BACKMAX)
        !            52:        error("too much backup");
        !            53: }
        !            54: get1char()
        !            55: {
        !            56: int c;
        !            57: if (backp>backup)
        !            58:        c = *--backp;
        !            59: else
        !            60:        c=getc(tabin);
        !            61: if (c== EOF) /* EOF */
        !            62:        {
        !            63:        if (swapin() ==0)
        !            64:                error("unexpected EOF");
        !            65:        c = getc(tabin);
        !            66:        }
        !            67: if (c== '\n')
        !            68:        iline++;
        !            69: return(c);
        !            70: }

unix.superglobalmegacorp.com

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