mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 06:11:35 +02:00
* Fix bug #30720, } is processed wrongly when scanning and PPIsSkipping
git-svn-id: trunk@34879 -
This commit is contained in:
parent
1f498123c6
commit
5d4f605a39
@ -1641,6 +1641,7 @@ var
|
|||||||
i: TToken;
|
i: TToken;
|
||||||
OldLength, SectionLength, NestingLevel, Index: Integer;
|
OldLength, SectionLength, NestingLevel, Index: Integer;
|
||||||
begin
|
begin
|
||||||
|
result:=tkLineEnding;
|
||||||
if TokenStr = nil then
|
if TokenStr = nil then
|
||||||
if not FetchLine then
|
if not FetchLine then
|
||||||
begin
|
begin
|
||||||
@ -2005,7 +2006,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
if not(po_delphi in Options) and (TokenStr[0] = '{') then
|
if not(po_delphi in Options) and (TokenStr[0] = '{') then
|
||||||
Inc(NestingLevel)
|
Inc(NestingLevel)
|
||||||
else if TokenStr[0] = '}' then
|
else if (TokenStr[0] = '}') and not PPIsSkipping then
|
||||||
Dec(NestingLevel);
|
Dec(NestingLevel);
|
||||||
Inc(TokenStr);
|
Inc(TokenStr);
|
||||||
end;
|
end;
|
||||||
|
@ -209,6 +209,7 @@ type
|
|||||||
Procedure TestDefine11;
|
Procedure TestDefine11;
|
||||||
Procedure TestDefine12;
|
Procedure TestDefine12;
|
||||||
Procedure TestDefine13;
|
Procedure TestDefine13;
|
||||||
|
Procedure TestDefine14;
|
||||||
Procedure TestInclude;
|
Procedure TestInclude;
|
||||||
Procedure TestInclude2;
|
Procedure TestInclude2;
|
||||||
Procedure TestUnDefine1;
|
Procedure TestUnDefine1;
|
||||||
@ -1396,6 +1397,26 @@ begin
|
|||||||
TestTokens([tkin],'{$IFDEF ALWAYS} }; ą è {$ELSE} in {$ENDIF}');
|
TestTokens([tkin],'{$IFDEF ALWAYS} }; ą è {$ELSE} in {$ENDIF}');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestScanner.TestDefine14;
|
||||||
|
Const
|
||||||
|
Source = '{$ifdef NEVER_DEFINED}' +sLineBreak+
|
||||||
|
'type'+sLineBreak+
|
||||||
|
' TNPEventModel = ('+sLineBreak+
|
||||||
|
' NPEventModelCarbon = 0,'+sLineBreak+
|
||||||
|
' NPEventModelCocoa = 1'+sLineBreak+
|
||||||
|
'}; // yes, this is an error... except this code should never be included.'+sLineBreak+
|
||||||
|
'ą'+sLineBreak+
|
||||||
|
'|'+sLineBreak+
|
||||||
|
'{$endif}'+sLineBreak+
|
||||||
|
''+sLineBreak+
|
||||||
|
'begin'+sLineBreak+
|
||||||
|
'end.'+sLineBreak;
|
||||||
|
begin
|
||||||
|
NewSource(Source,True);
|
||||||
|
While FScanner.fetchToken<>tkEOF do
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestScanner.TestInclude;
|
procedure TTestScanner.TestInclude;
|
||||||
begin
|
begin
|
||||||
FResolver.AddStream('myinclude.inc',TStringStream.Create('if true then'));
|
FResolver.AddStream('myinclude.inc',TStringStream.Create('if true then'));
|
||||||
|
Loading…
Reference in New Issue
Block a user