https://github.com/python/cpython/commit/899c7dc283cb899fdfd79fb479b38352f48e454a
commit: 899c7dc283cb899fdfd79fb479b38352f48e454a
branch: main
author: Victor Stinner <vstin...@python.org>
committer: vstinner <vstin...@python.org>
date: 2025-05-22T16:05:07+02:00
summary:

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 <storch...@gmail.com>

files:
M Modules/_localemodule.c

diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index ad618398d5b824..c1f56008b7c49e 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -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;

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: arch...@mail-archive.com

Reply via email to