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