mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-26 21:09:12 +02:00
codetools: fixed FindDiskFilename to recursively check all directories
git-svn-id: trunk@41553 -
This commit is contained in:
parent
4ce8683fd7
commit
db4e6e9744
@ -1640,6 +1640,7 @@ var
|
||||
begin
|
||||
Result:=ChompPathDelim(TrimFilename(Filename));
|
||||
if Result='' then exit;
|
||||
//debugln(['TCTDirectoryCachePool.FindDiskFilename Filename=',Result]);
|
||||
{$IF defined(NotLiteralFilenames) or defined(CaseInsensitiveFilenames)}
|
||||
{$ELSE}
|
||||
if (not SearchCaseInsensitive) then exit;
|
||||
@ -1647,9 +1648,14 @@ begin
|
||||
ADirectory:=ExtractFilePath(Result);
|
||||
if ADirectory=Result then
|
||||
exit; // e.g. / under Linux
|
||||
if SearchCaseInsensitive then
|
||||
// search recursively all directory parts
|
||||
ADirectory:=AppendPathDelim(FindDiskFilename(ADirectory,true));
|
||||
Cache:=GetCache(ADirectory,true,false);
|
||||
//debugln(['TCTDirectoryCachePool.FindDiskFilename Dir=',Cache.Directory]);
|
||||
Result:=ExtractFileName(Result);
|
||||
DiskShortFilename:=Cache.FindFile(Result,ctsfcAllCase);
|
||||
//debugln(['TCTDirectoryCachePool.FindDiskFilename DiskShortFilename=',DiskShortFilename]);
|
||||
if DiskShortFilename<>'' then Result:=DiskShortFilename;
|
||||
Result:=Cache.Directory+Result;
|
||||
end;
|
||||
|
@ -19,7 +19,7 @@ uses
|
||||
{$ENDIF};
|
||||
|
||||
{$I BROKENincfiles.inc}// must be fixed to brokenincfiles.inc
|
||||
{$I ../ScanExamples/BROKENincfiles.inc}// must be fixed to ../scanexamples/brokenincfiles.inc
|
||||
{$I ../ScanInstances/BROKENincfile2.inc}// must be fixed to ../scaninstances/brokenincfiles.inc
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -6447,8 +6447,11 @@ var
|
||||
AFilePath:=ExtractFilePath(Result);
|
||||
if AFilePath<>'' then begin
|
||||
// search relative to unit
|
||||
//debugln(['SearchIncludeFilename BaseDir+Result=',BaseDir+Result]);
|
||||
CurFilename:=DirectoryCache.Pool.FindDiskFilename(BaseDir+Result,true);
|
||||
Result:=copy(CurFilename,length(BaseDir)+1,length(CurFilename));
|
||||
//debugln(['SearchIncludeFilename DiskFilename=',CurFilename]);
|
||||
Result:=CreateRelativePath(CurFilename,BaseDir);
|
||||
//debugln(['SearchIncludeFilename RelativeDiskFilename=',Result]);
|
||||
if FileExistsCached(CurFilename) then
|
||||
Add(FilenameSrcPos,CurFilename,true)
|
||||
else
|
||||
@ -6504,7 +6507,7 @@ var
|
||||
end;
|
||||
AFilename:=SearchIncludeFilename(StartPos,AFilename);
|
||||
if OldFilename<>AFilename then begin
|
||||
DebugLn('FixFilename replacing in '+Code.Filename+' include directive "',OldFilename,'" with "',AFilename,'"');
|
||||
DebugLn('TStandardCodeTool.FixIncludeFilenames.FixFilename replacing in '+Code.Filename+' include directive "',OldFilename,'" with "',AFilename,'"');
|
||||
SourceChangeCache.ReplaceEx(gtNone,gtNone,0,0,Code,StartPos,EndPos,AFilename);
|
||||
end;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user