Alexandre Julliard : kernel32: Make sure the codepage registry keys are set correctly on wineprefix creation .

Alexandre Julliard julliard at winehq.org
Fri Oct 30 11:04:34 CDT 2009


Module: wine
Branch: master
Commit: cf8fa5459abe7a56c156c884882bb337ef3bcec1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cf8fa5459abe7a56c156c884882bb337ef3bcec1

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Oct 30 15:14:49 2009 +0100

kernel32: Make sure the codepage registry keys are set correctly on wineprefix creation.

---

 dlls/kernel32/locale.c |   22 +++++++++++++---------
 tools/wine.inf.in      |    4 ----
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c
index c1888ac..fb9b517 100644
--- a/dlls/kernel32/locale.c
+++ b/dlls/kernel32/locale.c
@@ -62,8 +62,6 @@ static const union cptable *oem_cptable;
 static const union cptable *mac_cptable;
 static const union cptable *unix_cptable;  /* NULL if UTF8 */
 
-static HANDLE NLS_RegOpenKey(HANDLE hRootKey, LPCWSTR szKeyName);
-
 static const WCHAR szNlsKeyName[] = {
     'M','a','c','h','i','n','e','\\','S','y','s','t','e','m','\\',
     'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
@@ -769,16 +767,22 @@ void LOCALE_InitRegistry(void)
 
     if (locale_update_registry( hkey, lc_ctypeW, lcid_LC_CTYPE, NULL, 0 ))
     {
-        HKEY nls_key = NLS_RegOpenKey( 0, szCodepageKeyName );
+        OBJECT_ATTRIBUTES attr;
+        HANDLE nls_key;
 
-        for (i = 0; i < sizeof(update_cp_values)/sizeof(update_cp_values[0]); i++)
+        RtlInitUnicodeString( &nameW, szCodepageKeyName );
+        InitializeObjectAttributes( &attr, &nameW, 0, 0, NULL );
+        if (!NtCreateKey( &nls_key, KEY_ALL_ACCESS, &attr, 0, NULL, 0, NULL ))
         {
-            count = GetLocaleInfoW( lcid, update_cp_values[i].value | LOCALE_NOUSEROVERRIDE,
-                                    bufferW, sizeof(bufferW)/sizeof(WCHAR) );
-            RtlInitUnicodeString( &nameW, update_cp_values[i].name );
-            NtSetValueKey( nls_key, &nameW, 0, REG_SZ, bufferW, count * sizeof(WCHAR) );
+            for (i = 0; i < sizeof(update_cp_values)/sizeof(update_cp_values[0]); i++)
+            {
+                count = GetLocaleInfoW( lcid, update_cp_values[i].value | LOCALE_NOUSEROVERRIDE,
+                                        bufferW, sizeof(bufferW)/sizeof(WCHAR) );
+                RtlInitUnicodeString( &nameW, update_cp_values[i].name );
+                NtSetValueKey( nls_key, &nameW, 0, REG_SZ, bufferW, count * sizeof(WCHAR) );
+            }
+            NtClose( nls_key );
         }
-        NtClose( nls_key );
     }
 
     NtClose( hkey );
diff --git a/tools/wine.inf.in b/tools/wine.inf.in
index bb2bd45..ac8742b 100644
--- a/tools/wine.inf.in
+++ b/tools/wine.inf.in
@@ -584,10 +584,6 @@ HKLM,SOFTWARE\Microsoft\Active Setup\Installed Components\{de5aed00-a4bf-11d1-99
 
 [Nls]
 HKLM,System\CurrentControlSet\Control\Nls\Codepage,"37",,""
-HKLM,System\CurrentControlSet\Control\Nls\Codepage,"ACP",,"1252"
-HKLM,System\CurrentControlSet\Control\Nls\Codepage,"MACCP",,"10000"
-HKLM,System\CurrentControlSet\Control\Nls\Codepage,"OEMCP",,"437"
-
 HKLM,System\CurrentControlSet\Control\Nls\Language,"0401",,""
 HKLM,System\CurrentControlSet\Control\Nls\Language,"0402",,""
 HKLM,System\CurrentControlSet\Control\Nls\Language,"0403",,""




More information about the wine-cvs mailing list