diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-08-29 00:16:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-29 00:16:53 +0200 |
commit | 2c8ddcf4f14f3e4c87a6fe6678ab5ad09130c6ab (patch) | |
tree | 30ec358a0f7947a398b2ed25eb416c92acaff2b6 /Python/pylifecycle.c | |
parent | 9e4994d410970fb4e75168401d159ba47a8f7108 (diff) | |
download | cpython-git-2c8ddcf4f14f3e4c87a6fe6678ab5ad09130c6ab.tar.gz |
bpo-34485: Fix _Py_InitializeCore() for C locale coercion (GH-8979)
* _Py_InitializeCore() now sets the LC_CTYPE locale to the user
preferred locale before checking if the C locale should be coerced
or not in _PyCoreConfig_Read().
* Fix pymain_read_conf(): remember if the C locale has been coerced
when the configuration should be read again if the encoding has
changed.
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r-- | Python/pylifecycle.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 29711dfc98..4d248ede9c 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -659,10 +659,6 @@ _Py_InitializeCore_impl(PyInterpreterState **interp_p, _PyRuntime.finalizing = NULL; #ifndef MS_WINDOWS - /* Set up the LC_CTYPE locale, so we can obtain - the locale's charset without having to switch - locales. */ - _Py_SetLocaleFromEnv(LC_CTYPE); _emit_stderr_warning_for_legacy_locale(core_config); #endif @@ -815,6 +811,12 @@ _Py_InitializeCore(PyInterpreterState **interp_p, (and the input configuration is read only). */ _PyCoreConfig config = _PyCoreConfig_INIT; +#ifndef MS_WINDOWS + /* Set up the LC_CTYPE locale, so we can obtain the locale's charset + without having to switch locales. */ + _Py_SetLocaleFromEnv(LC_CTYPE); +#endif + _PyMem_SetDefaultAllocator(PYMEM_DOMAIN_RAW, &old_alloc); if (_PyCoreConfig_Copy(&config, src_config) >= 0) { err = _PyCoreConfig_Read(&config); |