Alexandre Julliard : kernelbase: Reimplement LocaleNameToLCID() using the locale.nls data.
Module: wine Branch: master Commit: e74b0dc880a49985a912d54073cf4cf093c5c595 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e74b0dc880a49985a912d5407... Author: Alexandre Julliard <julliard(a)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(a)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; }
participants (1)
-
Alexandre Julliard