From: Victor Stinner Date: Wed, 29 Aug 2018 20:56:06 +0000 (+0200) Subject: bpo-34485: Emit C locale coercion warning later (GH-9002) X-Git-Tag: v3.8.0a1~1130 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cf21504194927b2f22132f48effea69eb8ade751;p=thirdparty%2FPython%2Fcpython.git 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. --- 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(); }