Forgot the bug line. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46196 (Full fix: fixes the country flags in the UI and would mostly fix the crashes, even without the previous patch.)
A segunda-feira, 2 de dezembro de 2019 21:39:54 WET João Diogo Ferreira escreveu:
Wine-bug: https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.wineh... Signed-off-by: João Diogo Craveiro Ferreira devilj@outlook.pt
V2: Also set GeoID if it is currently unset regardless of LANG change. Supersedes: 174357
dlls/kernelbase/locale.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c index 9bc3cfe80e..97f7a45b98 100644 --- a/dlls/kernelbase/locale.c +++ b/dlls/kernelbase/locale.c @@ -238,6 +238,8 @@ void init_locale(void) UINT ansi_cp = 0, oem_cp = 0; USHORT *ansi_ptr, *oem_ptr, *casemap_ptr; LCID lcid = GetUserDefaultLCID();
- GEOID geoid = GEOID_NOT_AVAILABLE;
- GEOCLASS geoclass; WCHAR bufferW[80]; DWORD count, i; SIZE_T size;
@@ -268,6 +270,13 @@ void init_locale(void) RegCreateKeyExW( HKEY_CURRENT_USER, L"Control Panel\International", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &intl_key, NULL );
- GetLocaleInfoW( LOCALE_USER_DEFAULT, LOCALE_IGEOID | LOCALE_RETURN_NUMBER,
(WCHAR *)&geoid, sizeof(geoid)/sizeof(WCHAR) );
- geoclass = GetGeoInfoW(geoid, GEO_NATION, NULL, 0, 0) ? GEOCLASS_NATION : GEOCLASS_REGION;
- if (GetUserGeoID(geoclass) == 39070)
SetUserGeoID(geoid);
- /* Update registry contents if the user locale has changed. * This simulates the action of the Windows control panel. */
@@ -290,6 +299,8 @@ void init_locale(void) (BYTE *)bufferW, (lstrlenW(bufferW) + 1) * sizeof(WCHAR) ); }
- SetUserGeoID(geoid);
- if (!RegCreateKeyExW( nls_key, L"Codepage", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, NULL )) {
-- 2.24.0