1*48316Sbostic /*-
2*48316Sbostic * %sccs.include.proprietary.c%
3*48316Sbostic */
4*48316Sbostic
514513Ssam #ifndef lint
6*48316Sbostic static char sccsid[] = "@(#)te.c 4.3 (Berkeley) 04/18/91";
7*48316Sbostic #endif /* not lint */
811039Sshannon
911039Sshannon /* te.c: error message control, input line count */
1011039Sshannon # include "t..c"
error(s)1111039Sshannon error(s)
1211039Sshannon char *s;
1311039Sshannon {
1411039Sshannon fprintf(stderr, "\n%s: line %d: %s\n", ifile, iline, s);
1511039Sshannon # ifdef unix
1611039Sshannon fprintf(stderr, "tbl quits\n");
1711039Sshannon exit(1);
1811039Sshannon # endif
1911039Sshannon # ifdef gcos
2011039Sshannon fprintf(stderr, "run terminated due to error condition detected by tbl preprocessor\n");
2111039Sshannon exit(0);
2211039Sshannon # endif
2311039Sshannon }
gets1(s)2411039Sshannon gets1(s)
2511039Sshannon char *s;
2611039Sshannon {
2711039Sshannon char *p;
2811039Sshannon int nbl = 0;
2911039Sshannon iline++;
3011039Sshannon p=fgets(s,BUFSIZ,tabin);
3111039Sshannon while (p==0)
3211039Sshannon {
3311039Sshannon if (swapin()==0)
3411039Sshannon return(0);
3511039Sshannon p = fgets(s,BUFSIZ,tabin);
3611039Sshannon }
3711039Sshannon
3811039Sshannon while (*s) s++;
3911039Sshannon s--;
4011039Sshannon if (*s == '\n') *s-- =0;
4111039Sshannon for(nbl=0; *s == '\\' && s>p; s--)
4211039Sshannon nbl++;
4311039Sshannon if (linstart && nbl % 2) /* fold escaped nl if in table */
4411039Sshannon gets1(s+1);
4511039Sshannon
4611039Sshannon return(p);
4711039Sshannon }
4811039Sshannon # define BACKMAX 500
4911039Sshannon char backup[BACKMAX];
5011039Sshannon char *backp = backup;
un1getc(c)5111039Sshannon un1getc(c)
5211039Sshannon {
5311039Sshannon if (c=='\n')
5411039Sshannon iline--;
5511039Sshannon *backp++ = c;
5611039Sshannon if (backp >= backup+BACKMAX)
5711039Sshannon error("too much backup");
5811039Sshannon }
get1char()5911039Sshannon get1char()
6011039Sshannon {
6111039Sshannon int c;
6211039Sshannon if (backp>backup)
6311039Sshannon c = *--backp;
6411039Sshannon else
6511039Sshannon c=getc(tabin);
6611039Sshannon if (c== EOF) /* EOF */
6711039Sshannon {
6811039Sshannon if (swapin() ==0)
6911039Sshannon error("unexpected EOF");
7011039Sshannon c = getc(tabin);
7111039Sshannon }
7211039Sshannon if (c== '\n')
7311039Sshannon iline++;
7411039Sshannon return(c);
7511039Sshannon }
76