]> git.sur5r.net Git - cc65/commitdiff
Fixed a bug that occurred when using // comments at the end of an #if
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 11 Dec 2002 15:28:09 +0000 (15:28 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 11 Dec 2002 15:28:09 +0000 (15:28 +0000)
line.

git-svn-id: svn://svn.cc65.org/cc65/trunk@1735 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/preproc.c

index 60c8417e88dda5b5010f228154a42ad0b6ae81c6..d835c075b50d1ffb7bfaecd736a878fdbd1d3e6d 100644 (file)
@@ -428,7 +428,7 @@ static int MacroCall (Macro* M)
                ArgStart = B;
                NextChar ();
            } else {
-               /* Comma or right paren inside nested parenthesis */
+               /* Comma or right paren inside nested parenthesis */
                if (CurC == ')') {
                    --ParCount;
                }
@@ -772,16 +772,14 @@ static int DoIf (int Skip)
        UseLineInfo (sv2.LI);
     }
 
-    /* Remove the #if from the line and add two semicolons as sentinels */
+    /* Remove the #if from the line */
     SkipBlank ();
     S = line;
     while (CurC != '\0') {
        *S++ = CurC;
        NextChar ();
     }
-    *S++ = ';';
-    *S++ = ';';
-    *S   = '\0';
+    *S = '\0';
 
     /* Start over parsing from line */
     InitLine (line);
@@ -792,6 +790,12 @@ static int DoIf (int Skip)
     /* Expand macros in this line */
     PreprocessLine ();
 
+    /* Add two semicolons as sentinels to the line, so the following
+     * expression evaluation will eat these two tokens but nothing from
+     * the following line.
+     */
+    strcat (line, ";;");
+
     /* Prime the token pump (remove old tokens from the stream) */
     NextToken ();
     NextToken ();