From: cuz Date: Wed, 11 Dec 2002 15:28:09 +0000 (+0000) Subject: Fixed a bug that occurred when using // comments at the end of an #if X-Git-Tag: V2.12.0~1921 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=11306120eaf7e9ce422f014ff5d90ac52d52f9bf;p=cc65 Fixed a bug that occurred when using // comments at the end of an #if line. git-svn-id: svn://svn.cc65.org/cc65/trunk@1735 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/cc65/preproc.c b/src/cc65/preproc.c index 60c8417e8..d835c075b 100644 --- a/src/cc65/preproc.c +++ b/src/cc65/preproc.c @@ -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 ();