From 885e19158d32c1d6f6a232707ea2aeec8b68cd30 Mon Sep 17 00:00:00 2001 From: mattias Date: Tue, 9 Feb 2010 19:32:25 +0000 Subject: [PATCH] codetools: fixed parsing empty implementation section git-svn-id: trunk@23673 - --- components/codetools/linkscanner.pas | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/components/codetools/linkscanner.pas b/components/codetools/linkscanner.pas index cb97be5731..05073ab99b 100644 --- a/components/codetools/linkscanner.pas +++ b/components/codetools/linkscanner.pas @@ -3043,7 +3043,11 @@ begin 'R': if CompareIdentifiers(p,'PROGRAM')=0 then exit(DoSourceTypeToken); 'A': if CompareIdentifiers(p,'PACKAGE')=0 then exit(DoSourceTypeToken); end; - 'U': if CompareIdentifiers(p,'UNIT')=0 then exit(DoSourceTypeToken); + 'U': + case UpChars[p[1]] of + 'N': if CompareIdentifiers(p,'UNIT')=0 then exit(DoSourceTypeToken); + 'S': if CompareIdentifiers(p,'USES')=0 then exit(DoUsesToken); + end; end; Result:=false; end; @@ -3076,9 +3080,6 @@ begin if ord(ScannedRange)>=ord(lsrInterfaceStart) then exit(false); ScannedRange:=lsrInterfaceStart; Result:=true; - if ScannedRange=ScanTill then exit; - ReadNextToken; - if IsUsesToken then Result:=DoUsesToken; end; function TLinkScanner.DoFinalizationToken: boolean; @@ -3101,7 +3102,9 @@ begin if ord(ScannedRange)<=ord(lsrInterfaceStart) then ScannedRange:=lsrMainUsesSectionStart else if ScannedRange=lsrImplementationStart then - ScannedRange:=lsrImplementationUsesSectionStart; + ScannedRange:=lsrImplementationUsesSectionStart + else + exit(false); repeat // read unit name ReadNextToken; @@ -3140,9 +3143,6 @@ begin if ord(ScannedRange)>=ord(lsrImplementationStart) then exit(false); ScannedRange:=lsrImplementationStart; Result:=true; - if ScannedRange=ScanTill then exit; - ReadNextToken; - if IsUsesToken then Result:=DoUsesToken; end; procedure TLinkScanner.SkipTillEndifElse(SkippingUntil: TLSSkippingDirective);