* Fix for bug ID #0028976

git-svn-id: trunk@32271 -
This commit is contained in:
michael 2015-11-08 10:15:50 +00:00
parent 2c566ffcb9
commit dd87c4f34f

View File

@ -357,31 +357,18 @@ implementation
end; end;
function CompareWideString(const s1, s2 : WideString) : PtrInt; function CompareWideString(const s1, s2 : WideString; Options : TCompareOptions) : PtrInt;
var var
cfstr1, cfstr2: CFStringRef; cfstr1, cfstr2: CFStringRef;
temp1, temp2: RawByteString; temp1, temp2: RawByteString;
begin begin
cfstr1:=CFStringCreateFromWideDataOptionallyViaUUTF8String(pwidechar(s1),length(s1),temp1); cfstr1:=CFStringCreateFromWideDataOptionallyViaUUTF8String(pwidechar(s1),length(s1),temp1);
cfstr2:=CFStringCreateFromWideDataOptionallyViaUUTF8String(pwidechar(s2),length(s2),temp2); cfstr2:=CFStringCreateFromWideDataOptionallyViaUUTF8String(pwidechar(s2),length(s2),temp2);
result:=CompareCFStrings(cfstr1,cfstr2,false); result:=CompareCFStrings(cfstr1,cfstr2,coIgnoreCase in Options);
CFRelease(cfstr1); CFRelease(cfstr1);
CFRelease(cfstr2); CFRelease(cfstr2);
end; end;
function CompareTextWideString(const s1, s2 : WideString): PtrInt;
var
cfstr1, cfstr2: CFStringRef;
temp1, temp2: RawByteString;
begin
cfstr1:=CFStringCreateFromWideDataOptionallyViaUUTF8String(pwidechar(s1),length(s1),temp1);
cfstr2:=CFStringCreateFromWideDataOptionallyViaUUTF8String(pwidechar(s2),length(s2),temp2);
result:=CompareCFStrings(cfstr1,cfstr2,true);
CFRelease(cfstr1);
CFRelease(cfstr2);
end;
function InternalCodePointLength(const Str: PChar; cfcp: CFStringEncoding; maxlookahead: ptrint): PtrInt; function InternalCodePointLength(const Str: PChar; cfcp: CFStringEncoding; maxlookahead: ptrint): PtrInt;
var var
cfstr: CFStringRef; cfstr: CFStringRef;
@ -610,7 +597,6 @@ implementation
LowerWideStringProc:=@LowerWideString; LowerWideStringProc:=@LowerWideString;
CompareWideStringProc:=@CompareWideString; CompareWideStringProc:=@CompareWideString;
CompareTextWideStringProc:=@CompareTextWideString;
CharLengthPCharProc:=@CharLengthPChar; CharLengthPCharProc:=@CharLengthPChar;
CodePointLengthProc:=@CodePointLength; CodePointLengthProc:=@CodePointLength;
@ -633,7 +619,6 @@ implementation
UpperUnicodeStringProc:=@UpperWideString; UpperUnicodeStringProc:=@UpperWideString;
LowerUnicodeStringProc:=@LowerWideString; LowerUnicodeStringProc:=@LowerWideString;
CompareUnicodeStringProc:=@CompareWideString; CompareUnicodeStringProc:=@CompareWideString;
CompareTextUnicodeStringProc:=@CompareTextWideString;
{ CodePage } { CodePage }
GetStandardCodePageProc:=@GetStandardCodePage; GetStandardCodePageProc:=@GetStandardCodePage;
end; end;