--- 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:
marco 2016-06-05 19:50:07 +00:00
parent 029a0fc7f3
commit c02fa41b46

View File

@ -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;