From 659d310e37aa48c07f623e7abaf11eec551689a3 Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 3 Jun 1991 14:46:13 +0000 Subject: [PATCH] Modified to output a little less white space --- lang/cem/cpp.ansi/preprocess.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lang/cem/cpp.ansi/preprocess.c b/lang/cem/cpp.ansi/preprocess.c index d10292d04..eb3f76d11 100644 --- a/lang/cem/cpp.ansi/preprocess.c +++ b/lang/cem/cpp.ansi/preprocess.c @@ -99,19 +99,20 @@ do_pragma() LineNumber++; } +char Xbuf[256]; + preprocess(fn) char *fn; { register int c; register char *op = _obuf; register char *ob = &_obuf[OBUFSIZE]; - char Xbuf[256]; int lineno = 0; int startline; #define flush(X) (sys_write(STDOUT,_obuf,X)) #define echo(ch) if (op == ob) { Xflush(); op = _obuf; } *op++ = (ch); -#define newline() echo('\n') +#define newline() op--; while (op >= _obuf && (*op == ' ' || *op == '\t')) op--; op++; echo('\n') if (!options['P']) { /* Generate a line directive communicating the @@ -133,11 +134,16 @@ preprocess(fn) lineno = LineNumber; \ if (! options['P']) { \ register char *p = Xbuf; \ - \ - sprint(p, "\n%s %d \"%s\"\n", \ + sprint(Xbuf, "%s %d \"%s\"\n", \ LINE_PREFIX, \ LineNumber, \ FileName); \ + op--; \ + while (op >= _obuf \ + && (class(*op) == STSKIP \ + || *op == '\n')) op--; \ + op++; \ + newline(); \ while (*p) { \ echo(*p++); \ } \ @@ -235,7 +241,7 @@ preprocess(fn) /* switch on character */ switch(class(c)) { case STNL: - echo(c); + newline(); break; case STSTR: case STCHAR: -- 2.34.1