mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-01 14:10:32 +02:00
--- Merging r32328 into '.':
U rtl/android/cwstring.pp --- Recording mergeinfo for merge of r32328 into '.': U . --- Merging r32345 into '.': G rtl/android/cwstring.pp --- Recording mergeinfo for merge of r32345 into '.': G . --- Merging r32538 into '.': G rtl/android/cwstring.pp --- Recording mergeinfo for merge of r32538 into '.': G . # revisions: 32328,32345,32538 git-svn-id: branches/fixes_3_0@33921 -
This commit is contained in:
parent
029a0fc7f3
commit
c02fa41b46
@ -253,21 +253,7 @@ begin
|
||||
result:=Count1 - Count2;
|
||||
end;
|
||||
|
||||
function CompareUnicodeString(const s1, s2 : UnicodeString) : PtrInt;
|
||||
begin
|
||||
if hlibICU = 0 then begin
|
||||
// fallback implementation
|
||||
Result:=_CompareStr(s1, s2);
|
||||
exit;
|
||||
end;
|
||||
InitThreadData;
|
||||
if DefColl <> nil then
|
||||
Result:=ucol_strcoll(DefColl, PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2))
|
||||
else
|
||||
Result:=u_strCompare(PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2), True);
|
||||
end;
|
||||
|
||||
function CompareTextUnicodeString(const s1, s2 : UnicodeString): PtrInt;
|
||||
function CompareUnicodeString(const s1, s2 : UnicodeString; Options : TCompareOptions) : PtrInt;
|
||||
const
|
||||
U_COMPARE_CODE_POINT_ORDER = $8000;
|
||||
var
|
||||
@ -275,11 +261,20 @@ var
|
||||
begin
|
||||
if hlibICU = 0 then begin
|
||||
// fallback implementation
|
||||
Result:=_CompareStr(UpperUnicodeString(s1), UpperUnicodeString(s2));
|
||||
Result:=_CompareStr(s1, s2);
|
||||
exit;
|
||||
end;
|
||||
err:=0;
|
||||
Result:=u_strCaseCompare(PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2), U_COMPARE_CODE_POINT_ORDER, err);
|
||||
if (coIgnoreCase in Options) then begin
|
||||
err:=0;
|
||||
Result:=u_strCaseCompare(PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2), U_COMPARE_CODE_POINT_ORDER, err);
|
||||
end
|
||||
else begin
|
||||
InitThreadData;
|
||||
if DefColl <> nil then
|
||||
Result:=ucol_strcoll(DefColl, PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2))
|
||||
else
|
||||
Result:=u_strCompare(PUnicodeChar(s1), Length(s1), PUnicodeChar(s2), Length(s2), True);
|
||||
end;
|
||||
end;
|
||||
|
||||
function UpperAnsiString(const s : AnsiString) : AnsiString;
|
||||
@ -294,22 +289,22 @@ end;
|
||||
|
||||
function CompareStrAnsiString(const s1, s2: ansistring): PtrInt;
|
||||
begin
|
||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2), []);
|
||||
end;
|
||||
|
||||
function StrCompAnsi(s1,s2 : PChar): PtrInt;
|
||||
begin
|
||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2), []);
|
||||
end;
|
||||
|
||||
function AnsiCompareText(const S1, S2: ansistring): PtrInt;
|
||||
begin
|
||||
Result:=CompareTextUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2), [coIgnoreCase]);
|
||||
end;
|
||||
|
||||
function AnsiStrIComp(S1, S2: PChar): PtrInt;
|
||||
begin
|
||||
Result:=CompareTextUnicodeString(UnicodeString(s1), UnicodeString(s2));
|
||||
Result:=CompareUnicodeString(UnicodeString(s1), UnicodeString(s2), [coIgnoreCase]);
|
||||
end;
|
||||
|
||||
function AnsiStrLComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
|
||||
@ -318,7 +313,7 @@ var
|
||||
begin
|
||||
SetString(as1, S1, MaxLen);
|
||||
SetString(as2, S2, MaxLen);
|
||||
Result:=CompareUnicodeString(UnicodeString(as1), UnicodeString(as2));
|
||||
Result:=CompareUnicodeString(UnicodeString(as1), UnicodeString(as2), []);
|
||||
end;
|
||||
|
||||
function AnsiStrLIComp(S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
|
||||
@ -327,7 +322,7 @@ var
|
||||
begin
|
||||
SetString(as1, S1, MaxLen);
|
||||
SetString(as2, S2, MaxLen);
|
||||
Result:=CompareTextUnicodeString(UnicodeString(as1), UnicodeString(as2));
|
||||
Result:=CompareUnicodeString(UnicodeString(as1), UnicodeString(as2), [coIgnoreCase]);
|
||||
end;
|
||||
|
||||
function AnsiStrLower(Str: PChar): PChar;
|
||||
@ -418,14 +413,9 @@ begin
|
||||
Result:=LowerUnicodeString(s);
|
||||
end;
|
||||
|
||||
function CompareWideString(const s1, s2 : WideString) : PtrInt;
|
||||
function CompareWideString(const s1, s2 : WideString; Options : TCompareOptions) : PtrInt;
|
||||
begin
|
||||
Result:=CompareUnicodeString(s1, s2);
|
||||
end;
|
||||
|
||||
function CompareTextWideString(const s1, s2 : WideString): PtrInt;
|
||||
begin
|
||||
Result:=CompareTextUnicodeString(s1, s2);
|
||||
Result:=CompareUnicodeString(s1, s2, Options);
|
||||
end;
|
||||
|
||||
Procedure SetCWideStringManager;
|
||||
@ -440,7 +430,6 @@ begin
|
||||
UpperWideStringProc:=@UpperWideString;
|
||||
LowerWideStringProc:=@LowerWideString;
|
||||
CompareWideStringProc:=@CompareWideString;
|
||||
CompareTextWideStringProc:=@CompareTextWideString;
|
||||
|
||||
UpperAnsiStringProc:=@UpperAnsiString;
|
||||
LowerAnsiStringProc:=@LowerAnsiString;
|
||||
@ -458,7 +447,6 @@ begin
|
||||
UpperUnicodeStringProc:=@UpperUnicodeString;
|
||||
LowerUnicodeStringProc:=@LowerUnicodeString;
|
||||
CompareUnicodeStringProc:=@CompareUnicodeString;
|
||||
CompareTextUnicodeStringProc:=@CompareTextUnicodeString;
|
||||
|
||||
GetStandardCodePageProc:=@GetStandardCodePage;
|
||||
CodePointLengthProc:=@CodePointLength;
|
||||
|
Loading…
Reference in New Issue
Block a user