force first line directive

This commit is contained in:
ceriel 1987-01-12 14:21:14 +00:00
parent 281f83968c
commit 5ddf83ab5a

View file

@ -27,7 +27,7 @@ preprocess(fn)
register int c; register int c;
register char *op = _obuf; register char *op = _obuf;
register char *ob = &_obuf[OBUFSIZE]; register char *ob = &_obuf[OBUFSIZE];
int lineno = 0; int lineno = 32767; /* force line directive */
extern char options[]; extern char options[];
#define flush(X) (sys_write(STDOUT,_obuf,X)) #define flush(X) (sys_write(STDOUT,_obuf,X))
@ -44,19 +44,20 @@ preprocess(fn)
newline(); newline();
LoadChar(c); LoadChar(c);
} }
if (! options['P'] && if (lineno != LineNumber || fn != FileName) {
(lineno != LineNumber || fn != FileName)) { fn = FileName;
lineno = LineNumber;
if (! options['P']) {
char Xbuf[256]; char Xbuf[256];
register char *p = Xbuf; register char *p = Xbuf;
fn = FileName;
lineno = LineNumber;
sprint(p, "# %d \"%s\"\n", LineNumber, sprint(p, "# %d \"%s\"\n", LineNumber,
FileName); FileName);
while (*p) { while (*p) {
echo(*p++); echo(*p++);
} }
} }
}
for (;;) { for (;;) {
if (c & 0200) { if (c & 0200) {
if (c == EOI) { if (c == EOI) {