mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-35336: Fix PYTHONCOERCECLOCALE=1 (GH-10806)
Fix PYTHONCOERCECLOCALE=1 environment variable: only coerce the C locale if the LC_CTYPE locale is "C".
This commit is contained in:
parent
a407004391
commit
55e498058f
3 changed files with 36 additions and 4 deletions
|
@ -1061,11 +1061,17 @@ config_read_complex_options(_PyCoreConfig *config)
|
|||
static void
|
||||
config_init_locale(_PyCoreConfig *config)
|
||||
{
|
||||
if (config->coerce_c_locale < 0) {
|
||||
/* Test also if coerce_c_locale equals 1: PYTHONCOERCECLOCALE=1 doesn't
|
||||
imply that the C locale is always coerced. It is only coerced if
|
||||
if the LC_CTYPE locale is "C". */
|
||||
if (config->coerce_c_locale != 0) {
|
||||
/* The C locale enables the C locale coercion (PEP 538) */
|
||||
if (_Py_LegacyLocaleDetected()) {
|
||||
config->coerce_c_locale = 1;
|
||||
}
|
||||
else {
|
||||
config->coerce_c_locale = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef MS_WINDOWS
|
||||
|
@ -1394,7 +1400,7 @@ _PyCoreConfig_Read(_PyCoreConfig *config)
|
|||
}
|
||||
}
|
||||
|
||||
if (config->utf8_mode < 0 || config->coerce_c_locale < 0) {
|
||||
if (config->coerce_c_locale != 0 || config->utf8_mode < 0) {
|
||||
config_init_locale(config);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue