From 2f56a3d6039ad85774b8855553d0666ac719af61 Mon Sep 17 00:00:00 2001 From: mattias Date: Thu, 3 Nov 2011 12:38:25 +0000 Subject: [PATCH] codetools: fixed repairing file case for include files and uses section git-svn-id: trunk@33260 - --- components/codetools/directorycacher.pas | 13 +++++++------ components/codetools/stdcodetools.pas | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/components/codetools/directorycacher.pas b/components/codetools/directorycacher.pas index 5d95ad72cb..46f0f61b2c 100644 --- a/components/codetools/directorycacher.pas +++ b/components/codetools/directorycacher.pas @@ -241,7 +241,8 @@ type function FindCompiledUnitInUnitSet(const Directory, AUnitName: string): string; procedure IterateFPCUnitsInSet(const Directory: string; const Iterate: TCTOnIterateFile); - function FindDiskFilename(const Filename: string): string; + function FindDiskFilename(const Filename: string; + {%H-}SearchCaseInsensitive: boolean = false): string; function FindUnitInDirectory(const Directory, AUnitName: string; AnyCase: boolean = false): string; function FindVirtualFile(const Filename: string): string; @@ -1596,18 +1597,19 @@ begin Cache.IterateFPCUnitsInSet(Iterate); end; -function TCTDirectoryCachePool.FindDiskFilename(const Filename: string - ): string; -{$IF defined(NotLiteralFilenames) or defined(CaseInsensitiveFilenames)} +function TCTDirectoryCachePool.FindDiskFilename(const Filename: string; + SearchCaseInsensitive: boolean): string; var ADirectory: String; Cache: TCTDirectoryCache; ShortFilename: String; -{$ENDIF} begin Result:=ChompPathDelim(TrimFilename(Filename)); if Result='' then exit; {$IF defined(NotLiteralFilenames) or defined(CaseInsensitiveFilenames)} + {$ELSE} + if (not SearchCaseInsensitive) then exit; + {$ENDIF} ADirectory:=ExtractFilePath(Result); if ADirectory=Result then exit; // e.g. / under Linux @@ -1616,7 +1618,6 @@ begin Result:=Cache.FindFile(ShortFilename,ctsfcAllCase); if Result='' then exit; Result:=Cache.Directory+Result; - {$ENDIF} end; function TCTDirectoryCachePool.FindUnitInDirectory(const Directory, diff --git a/components/codetools/stdcodetools.pas b/components/codetools/stdcodetools.pas index 0c0e53c1da..1b3d59a2ca 100644 --- a/components/codetools/stdcodetools.pas +++ b/components/codetools/stdcodetools.pas @@ -1171,7 +1171,7 @@ function TStandardCodeTool.FixUsedUnitCaseInUsesSection( end; CheckDirectoryCache; if DirectoryCache=nil then exit; - Result:=DirectoryCache.Pool.FindDiskFilename(AFilename); + Result:=DirectoryCache.Pool.FindDiskFilename(AFilename,true); if Result='' then exit; if MakeRelative then Result:=CreateRelativePath(Result,CurDir); @@ -6288,7 +6288,7 @@ var begin Result:=TrimFilename(AFilename); if FilenameIsAbsolute(Result) then begin - Result:=DirectoryCache.Pool.FindDiskFilename(Result); + Result:=DirectoryCache.Pool.FindDiskFilename(Result,true); Add(FilenameSrcPos,Result,FileExistsCached(Result)); //DebugLn('SearchIncludeFilename AbsoluteFilename="',Result,'"'); end else begin @@ -6299,7 +6299,7 @@ var AFilePath:=ExtractFilePath(Result); if AFilePath<>'' then begin // search relative to unit - CurFilename:=DirectoryCache.Pool.FindDiskFilename(BaseDir+Result); + CurFilename:=DirectoryCache.Pool.FindDiskFilename(BaseDir+Result,true); Result:=copy(CurFilename,length(BaseDir)+1,length(CurFilename)); if FileExistsCached(CurFilename) then Add(FilenameSrcPos,CurFilename,true)