From: ceriel Date: Mon, 2 Mar 1987 08:50:08 +0000 (+0000) Subject: Forced first linedirective with source filename X-Git-Tag: release-5-5~4557 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=b10452c2dc7a263e4c517e0c36bf77d0266c4139;p=ack.git Forced first linedirective with source filename --- diff --git a/util/cpp/preprocess.c b/util/cpp/preprocess.c index 884684e89..d33d17ac8 100644 --- a/util/cpp/preprocess.c +++ b/util/cpp/preprocess.c @@ -28,13 +28,27 @@ preprocess(fn) register int c; register char *op = _obuf; register char *ob = &_obuf[OBUFSIZE]; - int lineno = 32767; /* force line directive */ + char Xbuf[256]; + int lineno = 0; extern char options[]; #define flush(X) (sys_write(STDOUT,_obuf,X)) #define echo(ch) if (op == ob) { Xflush(); op = _obuf; } *op++ = (ch); #define newline() echo('\n') + if (! options['P']) { + /* Generate a line directive communicating the + source filename + */ + register char *p = Xbuf; + + sprint(p, "%s 1 \"%s\"\n", + LINE_PREFIX, + FileName); + while (*p) { + echo(*p++); + } + } for (;;) { LineNumber++; lineno++; @@ -49,7 +63,6 @@ preprocess(fn) fn = FileName; lineno = LineNumber; if (! options['P']) { - char Xbuf[256]; register char *p = Xbuf; sprint(p, "%s %d \"%s\"\n",