mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-03-03 13:35:46 +08:00
Cygwin: /proc/locales: fix sd_IN locale
Due to the way locales are evaluated in Windows, we can't ask for the script of the "sd-IN" locale, because Windows only knows the "sd-Deva-IN" locale. So asking for the script of the "sd" locale returns "Arab;", because "sd" is converted to "sd-Arab-PK". Special case "sd-IN" to workaround that issue. Fixes: c42b98bdc665 ("Cygwin: introduce /proc/codesets and /proc/locales") Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
606373e7d2
commit
9296f134fb
@ -2193,6 +2193,11 @@ format_proc_locale_proc (LPWSTR win_locale, DWORD info, LPARAM param)
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
/* "sd-IN" is no valid Windows locale, only "sd-Deva-IN" is. However,
|
||||
asking for LOCALE_SSCRIPTS below returns "Arab;" because the first "sd"
|
||||
locale Windows finds is "sd-Arab-PK", so we have to override this here. */
|
||||
else if (!wcscmp (iso639, L"sd") && !wcscmp (iso3166, L"IN"))
|
||||
strcpy (posix_loc, "sd_IN");
|
||||
/* In all other cases, we check if the script from the Windows
|
||||
locale is the default locale in that language. If not, we
|
||||
add it as modifier if possible, or skip it */
|
||||
@ -2242,8 +2247,10 @@ format_proc_locale_proc (LPWSTR win_locale, DWORD info, LPARAM param)
|
||||
changing the codeset and other stuff. */
|
||||
if (!wcscmp (iso639, L"be") && !wcscmp (iso3166, L"BY"))
|
||||
stpcpy (modifier, "@latin");
|
||||
if (!wcscmp (iso639, L"tt") && !wcscmp (iso3166, L"RU"))
|
||||
else if (!wcscmp (iso639, L"tt") && !wcscmp (iso3166, L"RU"))
|
||||
stpcpy (modifier, "@iqtelif");
|
||||
else if (!wcscmp (iso639, L"sd") && !wcscmp (iso3166, L"IN"))
|
||||
stpcpy (modifier, "@devanagari");
|
||||
/* If the base locale is ISO-8859-1 and the locale defines currency
|
||||
as EUR, add a @euro locale. For historical reasons there's also
|
||||
a greek @euro locale, albeit it doesn't change the codeset. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user