Browse Source

* Added UnicodeString helpers to widestring manager for wince. Bug #13057.

git-svn-id: trunk@13081 -
yury 16 years ago
parent
commit
f59d1b1b0b
1 changed files with 29 additions and 0 deletions
  1. 29 0
      rtl/wince/system.pp

+ 29 - 0
rtl/wince/system.pp

@@ -1577,6 +1577,28 @@ function WinCEWideLower(const s : WideString) : WideString;
       CharLowerBuff(LPWSTR(result),length(result));
   end;
 
+{ Currently widestrings are ref-counted on wince.
+  Unicode helpers are just wrappers over widestring helpers. }
+
+procedure WinCEUnicode2AnsiMove(source:punicodechar;var dest:ansistring;len:SizeInt);
+begin
+  WinCEWide2AnsiMove(source, dest, len);
+end;
+
+procedure WinCEAnsi2UnicodeMove(source:pchar;var dest:UnicodeString;len:SizeInt);
+begin
+  WinCEAnsi2WideMove(source, PWideString(@dest)^, len);
+end;
+
+function WinCEUnicodeUpper(const s : UnicodeString) : UnicodeString;
+begin
+  Result:=WinCEWideUpper(s);
+end;
+
+function WinCEUnicodeLower(const s : UnicodeString) : UnicodeString;
+begin
+  Result:=WinCEWideLower(s);
+end;
 
 { there is a similiar procedure in sysutils which inits the fields which
   are only relevant for the sysutils units }
@@ -1586,6 +1608,13 @@ procedure InitWinCEWidestrings;
     widestringmanager.Ansi2WideMoveProc:=@WinCEAnsi2WideMove;
     widestringmanager.UpperWideStringProc:=@WinCEWideUpper;
     widestringmanager.LowerWideStringProc:=@WinCEWideLower;
+{$ifndef VER2_2}
+    { Unicode }
+    widestringmanager.Unicode2AnsiMoveProc:=@WinCEUnicode2AnsiMove;
+    widestringmanager.Ansi2UnicodeMoveProc:=@WinCEAnsi2UnicodeMove;
+    widestringmanager.UpperUnicodeStringProc:=@WinCEUnicodeUpper;
+    widestringmanager.LowerUnicodeStringProc:=@WinCEUnicodeLower;
+{$endif VER2_2}
   end;