From fb3ccb1f50d77e15a287e95472b0d04c96b29fa5 Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 24 Jul 2010 22:30:53 +0000 Subject: [PATCH] codetools: check fpc paths: show duplicate souce files with ppu files git-svn-id: trunk@26820 - --- .../examples/testfpcsrcunitrules.lpr | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/components/codetools/examples/testfpcsrcunitrules.lpr b/components/codetools/examples/testfpcsrcunitrules.lpr index 4f1d44260b..511d323ba7 100644 --- a/components/codetools/examples/testfpcsrcunitrules.lpr +++ b/components/codetools/examples/testfpcsrcunitrules.lpr @@ -285,18 +285,43 @@ var Item: PStringToStringTreeItem; aUnitName: String; Files: String; + Units: TStringToStringTree; + PPUFile: string; begin SrcDuplicates:=UnitSet.GetSourceDuplicates(false); if SrcDuplicates=nil then exit; + Units:=UnitSet.GetConfigCache(false).Units; + + // first list all duplicates with a ppu file (important) Cnt:=0; Node:=SrcDuplicates.Tree.FindLowest; while Node<>nil do begin Item:=PStringToStringTreeItem(Node.Data); - if Cnt=0 then writeln; - inc(Cnt); aUnitName:=Item^.Name; Files:=Item^.Value; - writeln('WARNING: duplicate source files: unit=',aUnitName,' files=',Files); + PPUFile:=Units[aUnitName]; + if CompareFileExt(PPUFile,'ppu',false)=0 then begin + if Cnt=0 then writeln; + inc(Cnt); + writeln('WARNING: duplicate source file for ppu ',aUnitName,' files=',Files); + end; + Node:=SrcDuplicates.Tree.FindSuccessor(Node); + end; + if Cnt>0 then writeln; + + // then list all duplicates without a ppu file (unimportant) + Cnt:=0; + Node:=SrcDuplicates.Tree.FindLowest; + while Node<>nil do begin + Item:=PStringToStringTreeItem(Node.Data); + aUnitName:=Item^.Name; + Files:=Item^.Value; + PPUFile:=Units[aUnitName]; + if PPUFile='' then begin + if Cnt=0 then writeln; + inc(Cnt); + writeln('HINT: duplicate source files: unit=',aUnitName,' files=',Files); + end; Node:=SrcDuplicates.Tree.FindSuccessor(Node); end; if Cnt>0 then writeln;