From eb2b836b061aadb3dcb3c28968267a5cb46a0f82 Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 7 Jan 2012 20:36:22 +0000 Subject: [PATCH] * $IFDEF also handles macros git-svn-id: trunk@19997 - --- packages/fcl-passrc/src/pscanner.pp | 3 ++- packages/fcl-passrc/tests/tcscanner.pas | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/fcl-passrc/src/pscanner.pp b/packages/fcl-passrc/src/pscanner.pp index 98ee9c0496..0e11496d89 100644 --- a/packages/fcl-passrc/src/pscanner.pp +++ b/packages/fcl-passrc/src/pscanner.pp @@ -1158,7 +1158,6 @@ Var ML : TMacroReader; begin -// Writeln('Handling macro ',FMacros[AIndex]); PushStackItem; M:=FMacros.Objects[AIndex] as TMacroDef; ML:=TMacroReader.Create(FCurFileName,M.Value); @@ -1617,6 +1616,8 @@ begin begin Param := UpperCase(Param); Index := Defines.IndexOf(Param); + if Index < 0 then + Index := Macros.IndexOf(Param); if Index < 0 then begin PPSkipMode := ppSkipIfBranch; diff --git a/packages/fcl-passrc/tests/tcscanner.pas b/packages/fcl-passrc/tests/tcscanner.pas index 07de2e6efd..cde8dcbe1a 100644 --- a/packages/fcl-passrc/tests/tcscanner.pas +++ b/packages/fcl-passrc/tests/tcscanner.pas @@ -184,6 +184,7 @@ type Procedure TestInclude2; Procedure TestMacro1; procedure TestMacro2; + procedure TestMacro3; end; implementation @@ -1281,6 +1282,13 @@ begin TestTokens([tkbegin,tkend,tkDot],'{$DEFINE MM:=begin end}'#13#10'MM .',True,False); end; +procedure TTestScanner.TestMacro3; +begin + FScanner.SkipComments:=True; + FScanner.SkipWhiteSpace:=True; + TestTokens([tkof],'{$DEFINE MM:=begin end}'#13#10'{$IFDEF MM} of {$ELSE} in {$ENDIF}'); +end; +