From be26b0631b271e6690f0c2d8a0ceb2cd4c9df855 Mon Sep 17 00:00:00 2001 From: acqn Date: Sun, 24 Jul 2022 19:07:02 +0800 Subject: [PATCH] Fixed #ifdef and #ifndef. --- src/cc65/preproc.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/cc65/preproc.c b/src/cc65/preproc.c index 7e690874a..107541994 100644 --- a/src/cc65/preproc.c +++ b/src/cc65/preproc.c @@ -1136,14 +1136,18 @@ static int DoIf (int Skip) static int DoIfDef (int skip, int flag) /* Process #ifdef if flag == 1, or #ifndef if flag == 0. */ { - ident Ident; + int Value = 0; - SkipWhitespace (0); - if (MacName (Ident) == 0) { - return 0; - } else { - return PushIf (skip, flag, IsMacro(Ident)); + if (!skip) { + ident Ident; + + SkipWhitespace (0); + if (MacName (Ident)) { + Value = IsMacro (Ident); + } } + + return PushIf (skip, flag, Value); }