[ros-diffs] [dgorbachev] 37836: Fix Unicode -> Multibyte conversion (bug #3903).

dgorbachev at svn.reactos.org dgorbachev at svn.reactos.org
Wed Dec 3 18:40:52 CET 2008


Author: dgorbachev
Date: Wed Dec  3 11:40:49 2008
New Revision: 37836

URL: http://svn.reactos.org/svn/reactos?rev=37836&view=rev
Log:
Fix Unicode -> Multibyte conversion (bug #3903).

Modified:
    trunk/reactos/dll/win32/kernel32/misc/nls.c

Modified: trunk/reactos/dll/win32/kernel32/misc/nls.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/nls.c?rev=37836&r1=37835&r2=37836&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/misc/nls.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/misc/nls.c [iso-8859-1] Wed Dec  3 11:40:49 2008
@@ -433,7 +433,7 @@
         UCHAR Char;
         USHORT DBCSOffset;
         LPCSTR MbsEnd = MultiByteString + MultiByteCount;
-        ULONG Count;
+        INT Count;
 
         /* Does caller query for output buffer size? */
         if (WideCharCount == 0)
@@ -770,8 +770,9 @@
     {
         if(ch & 0xff00)
         {
-            UCHAR uOffset = CodePageTable->DBCSOffsets[ch >> 8];
-            return (CodePageTable->MultiByteTable[(uOffset << 8) + (ch & 0xff)] == wch);
+            USHORT uOffset = CodePageTable->DBCSOffsets[ch >> 8];
+            /* if (!uOffset) return (CodePageTable->MultiByteTable[ch] == wch); */
+            return (CodePageTable->DBCSOffsets[uOffset + (ch & 0xff)] == wch);
         }
 
         return (CodePageTable->MultiByteTable[ch] == wch);



More information about the Ros-diffs mailing list