Annotation of 43BSD/usr.bin/tbl/te.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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