mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
gh-133740: Fix locale.nl_langinfo(ALT_DIGITS) (#134468)
Set the LC_CTYPE locale to the LC_TIME locale even if nl_langinfo(ALT_DIGITS) result is ASCII. The result is a list separated by NUL characters and the code only checks the first list item which can be ASCII whereas following items are non-ASCII. Fix test__locale for the uk_UA locale on RHEL 7. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
8c5e5557c6
commit
899c7dc283
1 changed files with 11 additions and 1 deletions
|
@ -692,7 +692,17 @@ _locale_nl_langinfo_impl(PyObject *module, int item)
|
|||
result = result != NULL ? result : "";
|
||||
char *oldloc = NULL;
|
||||
if (langinfo_constants[i].category != LC_CTYPE
|
||||
&& !is_all_ascii(result)
|
||||
&& (
|
||||
#ifdef __GLIBC__
|
||||
// gh-133740: Always change the locale for ALT_DIGITS and ERA
|
||||
# ifdef ALT_DIGITS
|
||||
item == ALT_DIGITS ||
|
||||
# endif
|
||||
# ifdef ERA
|
||||
item == ERA ||
|
||||
# endif
|
||||
#endif
|
||||
!is_all_ascii(result))
|
||||
&& change_locale(langinfo_constants[i].category, &oldloc) < 0)
|
||||
{
|
||||
return NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue