浏览代码

* Add widestrutils, delphi compatibility (Bug ID 28396)

git-svn-id: trunk@32816 -
michael 9 年之前
父节点
当前提交
96257e11d7
共有 3 个文件被更改,包括 58 次插入0 次删除
  1. 1 0
      .gitattributes
  2. 1 0
      packages/rtl-objpas/fpmake.pp
  3. 56 0
      packages/rtl-objpas/src/inc/widestrutils.pp

+ 1 - 0
.gitattributes

@@ -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

+ 1 - 0
packages/rtl-objpas/fpmake.pp

@@ -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

+ 56 - 0
packages/rtl-objpas/src/inc/widestrutils.pp

@@ -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.
+