From b10452c2dc7a263e4c517e0c36bf77d0266c4139 Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 2 Mar 1987 08:50:08 +0000 Subject: [PATCH] Forced first linedirective with source filename --- util/cpp/preprocess.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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", -- 2.34.1