mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-30 09:38:16 +02:00
LazUtils: Deprecate Utf16StringReplace(). FPC now has good replacements. Issue #41068, by Alexey Torgashin.
This commit is contained in:
parent
15b22dd410
commit
e7763dbb0c
@ -45,8 +45,13 @@ function UTF16CharacterToUnicode(p: PWideChar; out CharLen: integer): Cardinal;
|
|||||||
function UnicodeToUTF16(u: cardinal): UnicodeString;
|
function UnicodeToUTF16(u: cardinal): UnicodeString;
|
||||||
function IsUTF16CharValid(AChar, ANextChar: WideChar): Boolean;
|
function IsUTF16CharValid(AChar, ANextChar: WideChar): Boolean;
|
||||||
function IsUTF16StringValid(AStr: UnicodeString): Boolean;
|
function IsUTF16StringValid(AStr: UnicodeString): Boolean;
|
||||||
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags): UnicodeString; Inline;
|
// Deprecated in Lazarus 3.99 in August 2024.
|
||||||
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags; out Count: Integer): UnicodeString;
|
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString;
|
||||||
|
Flags: TReplaceFlags): UnicodeString;
|
||||||
|
deprecated 'Use SysUtils.StringReplace or UnicodeStringReplace instead.';
|
||||||
|
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString;
|
||||||
|
Flags: TReplaceFlags; out Count: Integer): UnicodeString;
|
||||||
|
deprecated 'Use SysUtils.StringReplace or UnicodeStringReplace instead.';
|
||||||
|
|
||||||
// The following functions use UnicodeTables which are initialized
|
// The following functions use UnicodeTables which are initialized
|
||||||
// only when the functions are called.
|
// only when the functions are called.
|
||||||
@ -251,52 +256,14 @@ end;
|
|||||||
|
|
||||||
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString;
|
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString;
|
||||||
Flags: TReplaceFlags): UnicodeString;
|
Flags: TReplaceFlags): UnicodeString;
|
||||||
var
|
|
||||||
DummyCount: Integer;
|
|
||||||
begin
|
begin
|
||||||
Result := Utf16StringReplace(S, OldPattern, NewPattern, Flags, DummyCount);
|
Result:=UnicodeStringReplace(S, OldPattern, NewPattern, Flags);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
//Same as SysUtil.StringReplace but for WideStrings/UnicodeStrings, since it's not available in fpc yet
|
|
||||||
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString;
|
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString;
|
||||||
Flags: TReplaceFlags; out Count: Integer): UnicodeString;
|
Flags: TReplaceFlags; out Count: Integer): UnicodeString;
|
||||||
var
|
|
||||||
Srch, OldP, RemS: UnicodeString; // Srch and OldP can contain WideUpperCase versions of S,OldPattern
|
|
||||||
P: Integer;
|
|
||||||
begin
|
begin
|
||||||
Srch:=S;
|
Result:=UnicodeStringReplace(S, OldPattern, NewPattern, Flags, Count);
|
||||||
OldP:=OldPattern;
|
|
||||||
Count := 0;
|
|
||||||
if rfIgnoreCase in Flags then
|
|
||||||
begin
|
|
||||||
Srch:=WideUpperCase(Srch);
|
|
||||||
OldP:=WideUpperCase(OldP);
|
|
||||||
end;
|
|
||||||
RemS:=S;
|
|
||||||
Result:='';
|
|
||||||
while (Length(Srch)<>0) do
|
|
||||||
begin
|
|
||||||
P:=Pos(OldP, Srch);
|
|
||||||
if P=0 then
|
|
||||||
begin
|
|
||||||
Result:=Result+RemS;
|
|
||||||
Srch:='';
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
Inc(Count);
|
|
||||||
Result:=Result+Copy(RemS,1,P-1)+NewPattern;
|
|
||||||
P:=P+Length(OldP);
|
|
||||||
RemS:=Copy(RemS,P,Length(RemS)-P+1);
|
|
||||||
if not (rfReplaceAll in Flags) then
|
|
||||||
begin
|
|
||||||
Result:=Result+RemS;
|
|
||||||
Srch:='';
|
|
||||||
end
|
|
||||||
else
|
|
||||||
Srch:=Copy(Srch,P,Length(Srch)-P+1);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ begin
|
|||||||
AParams := Trim(Copy(S, P+1, MaxInt));
|
AParams := Trim(Copy(S, P+1, MaxInt));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
AParams := Utf16StringReplace(AParams, '%1', '%s', []);
|
AParams := UnicodeStringReplace(AParams, '%1', '%s', []);
|
||||||
end;
|
end;
|
||||||
{$ENDIF WinCE}
|
{$ENDIF WinCE}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user