force first line directive
authorceriel <none@none>
Mon, 12 Jan 1987 14:21:14 +0000 (14:21 +0000)
committerceriel <none@none>
Mon, 12 Jan 1987 14:21:14 +0000 (14:21 +0000)
util/cpp/preprocess.c

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