* Add widestrutils, delphi compatibility (Bug ID 28396)

git-svn-id: trunk@32816 -
This commit is contained in:
michael 2015-12-31 16:20:56 +00:00
parent 244be4f4c2
commit 96257e11d7
3 changed files with 58 additions and 0 deletions

1
.gitattributes vendored
View File

@ -6960,6 +6960,7 @@ packages/rtl-objpas/src/inc/varerror.inc svneol=native#text/plain
packages/rtl-objpas/src/inc/variants.pp svneol=native#text/plain
packages/rtl-objpas/src/inc/varutilh.inc svneol=native#text/plain
packages/rtl-objpas/src/inc/varutils.inc svneol=native#text/plain
packages/rtl-objpas/src/inc/widestrutils.pp svneol=native#text/plain
packages/rtl-objpas/src/morphos/varutils.pp svneol=native#text/plain
packages/rtl-objpas/src/msdos/varutils.pp svneol=native#text/plain
packages/rtl-objpas/src/nativent/varutils.pp svneol=native#text/pascal

View File

@ -61,6 +61,7 @@ begin
T:=P.Targets.AddUnit('strutils.pp',StrUtilsOses);
T:=P.Targets.AddUnit('widestrutils.pp',StrUtilsOses-ConvUtilOSes);
T:=P.Targets.AddUnit('varutils.pp',VarUtilsOses);
with T.Dependencies do
begin

View File

@ -0,0 +1,56 @@
unit WideStrUtils;
{$mode objfpc}
{$H+}
{$inline on}
interface
uses
SysUtils;
function WideStringReplace(const S, OldPattern, NewPattern: WideString; Flags: TReplaceFlags): WideString;
function WideReplaceStr(const AText, AFromText, AToText: WideString): WideString; inline;
function WideReplaceText(const AText, AFromText, AToText: WideString): WideString; inline;
function UnicodeStringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags): UnicodeString;
function UnicodeReplaceStr(const AText, AFromText, AToText: UnicodeString): UnicodeString; inline;
function UnicodeReplaceText(const AText, AFromText, AToText: UnicodeString): UnicodeString; inline;
implementation
function WideReplaceStr(const AText, AFromText, AToText: WideString): WideString; inline;
begin
Result := WideStringReplace(AText, AFromText, AToText, [rfReplaceAll]);
end;
function WideReplaceText(const AText, AFromText, AToText: WideString): WideString; inline;
begin
Result := WideStringReplace(AText, AFromText, AToText, [rfReplaceAll, rfIgnoreCase]);
end;
function UnicodeReplaceStr(const AText, AFromText, AToText: UnicodeString): UnicodeString; inline;
begin
Result := UnicodeStringReplace(AText, AFromText, AToText, [rfReplaceAll]);
end;
function UnicodeReplaceText(const AText, AFromText, AToText: UnicodeString): UnicodeString; inline;
begin
Result := UnicodeStringReplace(AText, AFromText, AToText, [rfReplaceAll, rfIgnoreCase]);
end;
Function WideStringReplace(const S, OldPattern, NewPattern: WideString; Flags: TReplaceFlags): WideString;
begin
Result:= sysutils.WideStringReplace(S,OldPattern,NewPattern,Flags);
end;
Function UnicodeStringReplace(const S, OldPattern, NewPattern: UnicodeString; Flags: TReplaceFlags): UnicodeString;
begin
Result:= sysutils.UnicodeStringReplace(S,OldPattern,NewPattern,Flags);
end;
end.