Alexandre Julliard : kernelbase: Reimplement misc locale info values in GetLocaleInfoW/Ex using the locale.nls data.
Alexandre Julliard
julliard at winehq.org
Wed Mar 30 15:43:56 CDT 2022
Module: wine
Branch: master
Commit: 08a9dc503191b912b2251d5b77824a414338dbbc
URL: https://source.winehq.org/git/wine.git/?a=commit;h=08a9dc503191b912b2251d5b77824a414338dbbc
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Mar 29 22:10:54 2022 +0200
kernelbase: Reimplement misc locale info values in GetLocaleInfoW/Ex using the locale.nls data.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernelbase/locale.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/kernelbase/locale.c b/dlls/kernelbase/locale.c
index a0960703097..669e1b14290 100644
--- a/dlls/kernelbase/locale.c
+++ b/dlls/kernelbase/locale.c
@@ -1276,7 +1276,7 @@ static int get_locale_info( const NLS_LOCALE_DATA *locale, LCID lcid, LCTYPE typ
return locale_return_strarray( locale->sduration, 0, type, buffer, len );
case LOCALE_SKEYBOARDSTOINSTALL:
- return -1;
+ return locale_return_string( locale->skeyboardstoinstall, type, buffer, len );
case LOCALE_SSHORTESTDAYNAME1:
case LOCALE_SSHORTESTDAYNAME2:
@@ -1304,13 +1304,13 @@ static int get_locale_info( const NLS_LOCALE_DATA *locale, LCID lcid, LCTYPE typ
return locale_return_string( locale->sneginfinity, type, buffer, len );
case LOCALE_SSCRIPTS:
- return -1;
+ return locale_return_string( locale->sscripts, type, buffer, len );
case LOCALE_SPARENT:
return locale_return_string( locale->sparent, type, buffer, len );
case LOCALE_SCONSOLEFALLBACKNAME:
- return -1;
+ return locale_return_string( locale->sconsolefallbackname, type, buffer, len );
case LOCALE_SLOCALIZEDLANGUAGENAME:
/* FIXME: localization */
@@ -1320,7 +1320,7 @@ static int get_locale_info( const NLS_LOCALE_DATA *locale, LCID lcid, LCTYPE typ
return locale_return_number( locale->ireadinglayout, type, buffer, len );
case LOCALE_INEUTRAL:
- return -1;
+ return locale_return_number( !locale->inotneutral, type, buffer, len );
case LOCALE_SENGLISHDISPLAYNAME:
return locale_return_string( locale->sengdisplayname, type, buffer, len );
@@ -1350,7 +1350,12 @@ static int get_locale_info( const NLS_LOCALE_DATA *locale, LCID lcid, LCTYPE typ
return locale_return_string( locale->sopentypelanguagetag, type, buffer, len );
case LOCALE_SSORTLOCALE:
- return -1;
+ if (SORTIDFROMLCID(lcid)) /* custom sort locale */
+ {
+ const NLS_LOCALE_LCID_INDEX *entry = find_lcid_entry( lcid & ~0x80000000 );
+ if (entry) return locale_return_string( entry->name, type, buffer, len );
+ }
+ return locale_return_string( locale->ssortlocale, type, buffer, len );
case LOCALE_SRELATIVELONGDATE:
return locale_return_string( locale->srelativelongdate, type, buffer, len );
More information about the wine-cvs
mailing list