![](https://secure.gravatar.com/avatar/cc7737cd64a84f1b5c61a160798e97ee.jpg?s=120&d=mm&r=g)
https://github.com/python/cpython/commit/cf21504194927b2f22132f48effea69eb8a... commit: cf21504194927b2f22132f48effea69eb8ade751 branch: master author: Victor Stinner <vstinner@redhat.com> committer: GitHub <noreply@github.com> date: 2018-08-29T22:56:06+02:00 summary: bpo-34485: Emit C locale coercion warning later (GH-9002) PYTHONCOERCELOCALE=warn warning is now emitted later and written into sys.stderr, rather than being written into the C stderr stream. files: M Python/pylifecycle.c diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 6d97f2f24d5d..ad55b2c2c787 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -301,10 +301,8 @@ static const char *_C_LOCALE_WARNING = static void _emit_stderr_warning_for_legacy_locale(const _PyCoreConfig *core_config) { - if (core_config->coerce_c_locale_warn) { - if (_Py_LegacyLocaleDetected()) { - fprintf(stderr, "%s", _C_LOCALE_WARNING); - } + if (core_config->coerce_c_locale_warn && _Py_LegacyLocaleDetected()) { + PySys_FormatStderr("%s", _C_LOCALE_WARNING); } } @@ -567,10 +565,6 @@ _Py_InitializeCore_impl(PyInterpreterState **interp_p, */ _PyRuntime.finalizing = NULL; -#ifndef MS_WINDOWS - _emit_stderr_warning_for_legacy_locale(core_config); -#endif - err = _Py_HashRandomization_Init(core_config); if (_Py_INIT_FAILED(err)) { return err; @@ -867,6 +861,11 @@ _Py_InitializeMainInterpreter(PyInterpreterState *interp, return err; } } + +#ifndef MS_WINDOWS + _emit_stderr_warning_for_legacy_locale(core_config); +#endif + return _Py_INIT_OK(); }