[ros-diffs] [dchapyshev] 38890: - Partly sync with Wine head

dchapyshev at svn.reactos.org dchapyshev at svn.reactos.org
Sun Jan 18 14:13:31 CET 2009


Author: dchapyshev
Date: Sun Jan 18 07:13:31 2009
New Revision: 38890

URL: http://svn.reactos.org/svn/reactos?rev=38890&view=rev
Log:
- Partly sync with Wine head

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

Modified: trunk/reactos/dll/win32/kernel32/misc/lang.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/misc/lang.c?rev=38890&r1=38889&r2=38890&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/misc/lang.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/misc/lang.c [iso-8859-1] Sun Jan 18 07:13:31 2009
@@ -1622,6 +1622,11 @@
     case LOCALE_ITLZERO:          return L"iTLZero";
     case LOCALE_SCOUNTRY:         return L"sCountry";
     case LOCALE_SLANGUAGE:        return L"sLanguage";
+
+    /* The following are used in XP and later */
+    case LOCALE_IDIGITSUBSTITUTION: return L"NumShape";
+    case LOCALE_SNATIVEDIGITS:      return L"sNativeDigits";
+    case LOCALE_ITIMEMARKPOSN:      return L"iTimePrefix";
     }
     return NULL;
 }
@@ -1670,7 +1675,6 @@
     }
 
     ntStatus = NtQueryValueKey( hKey, &usNameW, KeyValuePartialInformation, kvpiInfo, dwSize, &dwSize );
-    if (ntStatus == STATUS_BUFFER_OVERFLOW && !lpBuffer) ntStatus = 0;
 
     if (!ntStatus)
     {
@@ -1691,14 +1695,18 @@
             lpBuffer[nRet - 1] = 0;
         }
     }
+    else if (ntStatus == STATUS_BUFFER_OVERFLOW && !lpBuffer)
+    {
+        nRet = (dwSize - nInfoSize) / sizeof(WCHAR) + 1;
+    }
+    else if (ntStatus == STATUS_OBJECT_NAME_NOT_FOUND)
+    {
+        nRet = -1;
+    }
     else
     {
-        if (ntStatus == STATUS_OBJECT_NAME_NOT_FOUND) nRet = -1;
-        else
-        {
-            SetLastError( RtlNtStatusToDosError(ntStatus) );
-            nRet = 0;
-        }
+        SetLastError( RtlNtStatusToDosError(ntStatus) );
+        nRet = 0;
     }
     NtClose( hKey );
     HeapFree( GetProcessHeap(), 0, kvpiInfo );



More information about the Ros-diffs mailing list