Browse Source

- Removed Win32Wide2AnsiMove, using Win32Unicode2AnsiMove for both Unicode-to-ansi and Wide-to-ansi conversions. In general, we don't need two different conversion routines in wideStringManager, as long as they differ only in PWideChar vs PUnicodeChar (these types are identical).

git-svn-id: trunk@17202 -
sergei 14 years ago
parent
commit
3a7ac49cc2
3 changed files with 4 additions and 25 deletions
  1. 4 1
      rtl/win/syswin.inc
  2. 0 12
      rtl/win32/system.pp
  3. 0 12
      rtl/win64/system.pp

+ 4 - 1
rtl/win/syswin.inc

@@ -290,8 +290,11 @@ procedure InitWin32Widestrings;
       end;
 {$endif}
 
+    { Note: since WideChar=UnicodeChar and PWideChar=PUnicodeChar,
+      Wide2AnsiMoveProc is identical to Unicode2AnsiStrMoveProc. }
+
     { Widestring }
-    widestringmanager.Wide2AnsiMoveProc:=@Win32Wide2AnsiMove;
+    widestringmanager.Wide2AnsiMoveProc:=@Win32Unicode2AnsiMove;
     widestringmanager.Ansi2WideMoveProc:=@Win32Ansi2WideMove;
     widestringmanager.UpperWideStringProc:=@Win32WideUpper;
     widestringmanager.LowerWideStringProc:=@Win32WideLower;

+ 0 - 12
rtl/win32/system.pp

@@ -846,18 +846,6 @@ function CharLowerBuff(lpsz:LPWSTR; cchLength:DWORD):DWORD;
                               Widestring
  ******************************************************************************}
 
-procedure Win32Wide2AnsiMove(source:pwidechar;var dest:ansistring;len:SizeInt);
-  var
-    destlen: SizeInt;
-  begin
-    // retrieve length including trailing #0
-    // not anymore, because this must also be usable for single characters
-    destlen:=WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, source, len, nil, 0, nil, nil);
-    // this will null-terminate
-    setlength(dest, destlen);
-    WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, source, len, @dest[1], destlen, nil, nil);
-  end;
-
 procedure Win32Ansi2WideMove(source:pchar;var dest:widestring;len:SizeInt);
   var
     destlen: SizeInt;

+ 0 - 12
rtl/win64/system.pp

@@ -903,18 +903,6 @@ function CharLowerBuff(lpsz:LPWSTR; cchLength:DWORD):DWORD;
     stdcall; external 'user32' name 'CharLowerBuffW';
 
 
-procedure Win32Wide2AnsiMove(source:pwidechar;var dest:ansistring;len:SizeInt);
-  var
-    destlen: SizeInt;
-  begin
-    // retrieve length including trailing #0
-    // not anymore, because this must also be usable for single characters
-    destlen:=WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, source, len, nil, 0, nil, nil);
-    // this will null-terminate
-    setlength(dest, destlen);
-    WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, source, len, @dest[1], destlen, nil, nil);
-  end;
-
 procedure Win32Ansi2WideMove(source:pchar;var dest:widestring;len:SizeInt);
   var
     destlen: SizeInt;