mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-15 09:39:25 +02:00
* Patch from Inoussa to decompose canonically (to be able to implement CompareText)
git-svn-id: trunk@31508 -
This commit is contained in:
parent
e8fca1c9c0
commit
f759815d04
@ -382,6 +382,8 @@ const
|
||||
|
||||
function NormalizeNFD(const AString : UnicodeString) : UnicodeString;inline;overload;
|
||||
function NormalizeNFD(const AStr : PUnicodeChar; ALength : SizeInt) : UnicodeString;overload;
|
||||
function DecomposeCanonical(const AString : UnicodeString) : UnicodeString;inline;overload;
|
||||
function DecomposeCanonical(const AStr : PUnicodeChar; ALength : SizeInt) : UnicodeString;overload;
|
||||
procedure CanonicalOrder(var AString : UnicodeString);inline;overload;
|
||||
procedure CanonicalOrder(AStr : PUnicodeChar; const ALength : SizeInt);overload;
|
||||
|
||||
@ -1423,13 +1425,12 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
//Canonical Decomposition
|
||||
function NormalizeNFD(const AString : UnicodeString) : UnicodeString;
|
||||
function DecomposeCanonical(const AString : UnicodeString) : UnicodeString;
|
||||
begin
|
||||
Result := NormalizeNFD(@AString[1],Length(AString));
|
||||
Result := DecomposeCanonical(@AString[1],Length(AString));
|
||||
end;
|
||||
|
||||
function NormalizeNFD(const AStr : PUnicodeChar; ALength : SizeInt) : UnicodeString;
|
||||
function DecomposeCanonical(const AStr : PUnicodeChar; ALength : SizeInt) : UnicodeString;
|
||||
const MAX_EXPAND = 3;
|
||||
var
|
||||
i, c, kc, k : SizeInt;
|
||||
@ -1509,6 +1510,20 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function NormalizeNFD(const AStr : PUnicodeChar; ALength : SizeInt) : UnicodeString;
|
||||
begin
|
||||
if (ALength < 1) then
|
||||
exit('');
|
||||
Result := DecomposeCanonical(AStr,ALength);
|
||||
CanonicalOrder(@Result[1],Length(Result));
|
||||
end;
|
||||
|
||||
//Canonical Decomposition + _ordering_
|
||||
function NormalizeNFD(const AString : UnicodeString) : UnicodeString;
|
||||
begin
|
||||
Result := NormalizeNFD(@AString[1],Length(AString));
|
||||
end;
|
||||
|
||||
{ TUCA_PropItemContextTreeNodeRec }
|
||||
|
||||
function TUCA_PropItemContextTreeNodeRec.GetLeftNode: PUCA_PropItemContextTreeNodeRec;
|
||||
|
Loading…
Reference in New Issue
Block a user