Alexandre Julliard : kernelbase: Reimplement LocaleNameToLCID() using the locale.nls data.
Alexandre Julliard
julliard at winehq.org
Thu Mar 24 17:46:43 CDT 2022
Module: wine
Branch: master
Commit: e74b0dc880a49985a912d54073cf4cf093c5c595
URL: https://source.winehq.org/git/wine.git/?a=commit;h=e74b0dc880a49985a912d54073cf4cf093c5c595
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Mar 24 16:52:42 2022 +0100
kernelbase: Reimplement LocaleNameToLCID() using the locale.nls data.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernelbase/locale.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c
index db9466fdd58..faa7b657adc 100644
--- a/dlls/kernelbase/locale.c
+++ b/dlls/kernelbase/locale.c
@@ -5596,10 +5596,15 @@ INT WINAPI DECLSPEC_HOTPATCH LCMapStringW( LCID lcid, DWORD flags, const WCHAR *
LCID WINAPI DECLSPEC_HOTPATCH LocaleNameToLCID( const WCHAR *name, DWORD flags )
{
LCID lcid;
+ const NLS_LOCALE_DATA *locale = get_locale_by_name( name, &lcid );
- if (!name) return GetUserDefaultLCID();
- if (!set_ntstatus( RtlLocaleNameToLcid( name, &lcid, 2 ))) return 0;
- if (!(flags & LOCALE_ALLOW_NEUTRAL_NAMES)) lcid = ConvertDefaultLocale( lcid );
+ if (!locale)
+ {
+ SetLastError( ERROR_INVALID_PARAMETER );
+ return 0;
+ }
+ if (!(flags & LOCALE_ALLOW_NEUTRAL_NAMES) && !locale->inotneutral)
+ lcid = locale->idefaultlanguage;
return lcid;
}
More information about the wine-cvs
mailing list