mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-23 05:28:34 +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 IsUTF16CharValid(AChar, ANextChar: WideChar): Boolean;
|
||||
function IsUTF16StringValid(AStr: UnicodeString): Boolean;
|
||||
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags): UnicodeString; Inline;
|
||||
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags; out Count: Integer): UnicodeString;
|
||||
// Deprecated in Lazarus 3.99 in August 2024.
|
||||
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
|
||||
// only when the functions are called.
|
||||
@ -251,52 +256,14 @@ end;
|
||||
|
||||
function Utf16StringReplace(const S, OldPattern, NewPattern: UnicodeString;
|
||||
Flags: TReplaceFlags): UnicodeString;
|
||||
var
|
||||
DummyCount: Integer;
|
||||
begin
|
||||
Result := Utf16StringReplace(S, OldPattern, NewPattern, Flags, DummyCount);
|
||||
Result:=UnicodeStringReplace(S, OldPattern, NewPattern, Flags);
|
||||
end;
|
||||
|
||||
//Same as SysUtil.StringReplace but for WideStrings/UnicodeStrings, since it's not available in fpc yet
|
||||
function Utf16StringReplace(const S, OldPattern, NewPattern: 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
|
||||
Srch:=S;
|
||||
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;
|
||||
Result:=UnicodeStringReplace(S, OldPattern, NewPattern, Flags, Count);
|
||||
end;
|
||||
|
||||
|
||||
|
@ -135,7 +135,7 @@ begin
|
||||
AParams := Trim(Copy(S, P+1, MaxInt));
|
||||
end;
|
||||
end;
|
||||
AParams := Utf16StringReplace(AParams, '%1', '%s', []);
|
||||
AParams := UnicodeStringReplace(AParams, '%1', '%s', []);
|
||||
end;
|
||||
{$ENDIF WinCE}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user