mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-27 11:00:37 +02:00
codetools: CompareFilenames with PChar
git-svn-id: trunk@32255 -
This commit is contained in:
parent
b808d3f14e
commit
aae1b7e21f
@ -81,6 +81,8 @@ function CompareFilenamesIgnoreCase(const Filename1, Filename2: string): integer
|
||||
function CompareFileExt(const Filename, Ext: string;
|
||||
CaseSensitive: boolean): integer;
|
||||
function CompareFilenameStarts(const Filename1, Filename2: string): integer;
|
||||
function CompareFilenames(Filename1: PChar; Len1: integer;
|
||||
Filename2: PChar; Len2: integer): integer;
|
||||
function DirPathExists(DirectoryName: string): boolean;
|
||||
function DirectoryIsWritable(const DirectoryName: string): boolean;
|
||||
function ExtractFileNameOnly(const AFilename: string): string;
|
||||
@ -1138,6 +1140,39 @@ begin
|
||||
Result:=1;
|
||||
end;
|
||||
|
||||
function CompareFilenames(Filename1: PChar; Len1: integer; Filename2: PChar;
|
||||
Len2: integer): integer;
|
||||
var
|
||||
{$IFDEF NotLiteralFilenames}
|
||||
File1: string;
|
||||
File2: string;
|
||||
{$ELSE}
|
||||
i: Integer;
|
||||
{$ENDIF}
|
||||
begin
|
||||
if (Len1=0) or (Len2=0) then begin
|
||||
Result:=Len1-Len2;
|
||||
exit;
|
||||
end;
|
||||
{$IFDEF NotLiteralFilenames}
|
||||
SetLength(File1,Len1);
|
||||
System.Move(Filename1^,File1[1],Len1);
|
||||
SetLength(File2,Len2);
|
||||
System.Move(Filename2^,File2[1],Len2);
|
||||
Result:=CompareFilenames(File1,File2);
|
||||
{$ELSE}
|
||||
Result:=0;
|
||||
i:=0;
|
||||
while (Result=0) and ((i<Len1) and (i<Len2)) do begin
|
||||
Result:=Ord(Filename1[i])
|
||||
-Ord(Filename2[i]);
|
||||
Inc(i);
|
||||
end;
|
||||
if Result=0 Then
|
||||
Result:=Len1-Len2;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
function DirPathExists(DirectoryName: string): boolean;
|
||||
begin
|
||||
Result:=DirectoryExistsUTF8(ChompPathDelim(DirectoryName));
|
||||
|
Loading…
Reference in New Issue
Block a user