mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 08:09:28 +02:00
parent
be6c2e6c94
commit
2809e98bf9
@ -254,6 +254,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function CompareUnicodeString(const s1, s2 : UnicodeString; Options : TCompareOptions) : PtrInt;
|
function CompareUnicodeString(const s1, s2 : UnicodeString; Options : TCompareOptions) : PtrInt;
|
||||||
|
const
|
||||||
|
U_COMPARE_CODE_POINT_ORDER = $8000;
|
||||||
|
var
|
||||||
|
err: UErrorCode;
|
||||||
begin
|
begin
|
||||||
if hlibICU = 0 then begin
|
if hlibICU = 0 then begin
|
||||||
// fallback implementation
|
// fallback implementation
|
||||||
@ -262,7 +266,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
InitThreadData;
|
InitThreadData;
|
||||||
if (coIgnoreCase in Options) then
|
if (coIgnoreCase in Options) then
|
||||||
u_strCaseCompare(PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2), U_COMPARE_CODE_POINT_ORDER, err);
|
u_strCaseCompare(PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2), U_COMPARE_CODE_POINT_ORDER, err)
|
||||||
else
|
else
|
||||||
if DefColl <> nil then
|
if DefColl <> nil then
|
||||||
Result:=ucol_strcoll(DefColl, PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2))
|
Result:=ucol_strcoll(DefColl, PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2))
|
||||||
@ -297,22 +301,22 @@ end;
|
|||||||
|
|
||||||
function CompareStrAnsiString(const s1, s2: ansistring): PtrInt;
|
function CompareStrAnsiString(const s1, s2: ansistring): PtrInt;
|
||||||
begin
|
begin
|
||||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2),[]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function StrCompAnsi(s1,s2 : PChar): PtrInt;
|
function StrCompAnsi(s1,s2 : PChar): PtrInt;
|
||||||
begin
|
begin
|
||||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2),[]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function AnsiCompareText(const S1, S2: ansistring): PtrInt;
|
function AnsiCompareText(const S1, S2: ansistring): PtrInt;
|
||||||
begin
|
begin
|
||||||
Result:=CompareTextUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2),[coIgnoreCase]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function AnsiStrIComp(S1, S2: PChar): PtrInt;
|
function AnsiStrIComp(S1, S2: PChar): PtrInt;
|
||||||
begin
|
begin
|
||||||
Result:=CompareTextUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2),[coIgnoreCase]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function AnsiStrLComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
|
function AnsiStrLComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
|
||||||
@ -321,7 +325,7 @@ var
|
|||||||
begin
|
begin
|
||||||
SetString(as1, S1, MaxLen);
|
SetString(as1, S1, MaxLen);
|
||||||
SetString(as2, S2, MaxLen);
|
SetString(as2, S2, MaxLen);
|
||||||
Result:=CompareUnicodeString(UnicodeString(as1), UnicodeString(as2));
|
Result:=CompareUnicodeString(UnicodeString(as1), UnicodeString(as2),[]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function AnsiStrLIComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
|
function AnsiStrLIComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
|
||||||
@ -330,7 +334,7 @@ var
|
|||||||
begin
|
begin
|
||||||
SetString(as1, S1, MaxLen);
|
SetString(as1, S1, MaxLen);
|
||||||
SetString(as2, S2, MaxLen);
|
SetString(as2, S2, MaxLen);
|
||||||
Result:=CompareTextUnicodeString(UnicodeString(as1), UnicodeString(as2));
|
Result:=CompareUnicodeString(UnicodeString(as1), UnicodeString(as2),[coIgnoreCase]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function AnsiStrLower(Str: PChar): PChar;
|
function AnsiStrLower(Str: PChar): PChar;
|
||||||
@ -428,7 +432,7 @@ end;
|
|||||||
|
|
||||||
function CompareTextWideString(const s1, s2 : WideString): PtrInt;
|
function CompareTextWideString(const s1, s2 : WideString): PtrInt;
|
||||||
begin
|
begin
|
||||||
Result:=CompareTextUnicodeString(s1, s2);
|
Result:=CompareTextUnicodeString(s1, s2,[coIgnoreCase]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure SetCWideStringManager;
|
Procedure SetCWideStringManager;
|
||||||
|
Loading…
Reference in New Issue
Block a user