Alexandre Julliard : kernelbase: Check the locale name instead of the LCID to detect changes.
Alexandre Julliard
julliard at winehq.org
Fri Apr 1 16:04:27 CDT 2022
Module: wine
Branch: master
Commit: c30626505b2782decc1370f9f60b82ebfd9f7c8f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c30626505b2782decc1370f9f60b82ebfd9f7c8f
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Apr 1 16:00:46 2022 +0200
kernelbase: Check the locale name instead of the LCID to detect changes.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernelbase/locale.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c
index 4f0957ceff6..6bfa9604806 100644
--- a/dlls/kernelbase/locale.c
+++ b/dlls/kernelbase/locale.c
@@ -1543,6 +1543,7 @@ void init_locale( HMODULE module )
void *sort_ptr;
WCHAR bufferW[LOCALE_NAME_MAX_LENGTH];
DYNAMIC_TIME_ZONE_INFORMATION timezone;
+ const WCHAR *user_locale_name;
DWORD count;
SIZE_T size;
HKEY hkey;
@@ -1621,13 +1622,15 @@ void init_locale( HMODULE module )
/* Update registry contents if the user locale has changed.
* This simulates the action of the Windows control panel. */
+ user_locale_name = locale_strings + user_locale->sname + 1;
count = sizeof(bufferW);
- if (!RegQueryValueExW( intl_key, L"Locale", NULL, NULL, (BYTE *)bufferW, &count ))
+ if (!RegQueryValueExW( intl_key, L"LocaleName", NULL, NULL, (BYTE *)bufferW, &count ))
{
- if (wcstoul( bufferW, NULL, 16 ) == user_lcid) return; /* already set correctly */
- TRACE( "updating registry, locale changed %s -> %08lx\n", debugstr_w(bufferW), user_lcid );
+ if (!wcscmp( bufferW, user_locale_name )) return; /* unchanged */
+ TRACE( "updating registry, locale changed %s -> %s\n",
+ debugstr_w(bufferW), debugstr_w(user_locale_name) );
}
- else TRACE( "updating registry, locale changed none -> %08lx\n", user_lcid );
+ else TRACE( "updating registry, locale changed none -> %s\n", debugstr_w(user_locale_name) );
update_locale_registry();
More information about the wine-cvs
mailing list