summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-08-28 21:26:33 (GMT)
committerGitHub <noreply@github.com>2018-08-28 21:26:33 (GMT)
commit9e4994d410970fb4e75168401d159ba47a8f7108 (patch)
tree31eb67e89ade21902bfe925d353f650ae95fb5d8 /Modules
parentd500e5307aec9c5d535f66d567fadb9c587a9a36 (diff)
downloadcpython-9e4994d410970fb4e75168401d159ba47a8f7108.zip
cpython-9e4994d410970fb4e75168401d159ba47a8f7108.tar.gz
cpython-9e4994d410970fb4e75168401d159ba47a8f7108.tar.bz2
bpo-34485: Enhance init_sys_streams() (GH-8978)
Python now gets the locale encoding with C code to initialize the encoding of standard streams like sys.stdout. Moreover, the encoding is now initialized to the Python codec name to get a normalized encoding name and to ensure that the codec is loaded. The change avoids importing _bootlocale and _locale modules at startup by default. When the PYTHONIOENCODING environment variable only contains an encoding, the error handler is now is now set explicitly to "strict". Rename also get_default_standard_stream_error_handler() to get_stdio_errors(). Reduce the buffer to format the "cpXXX" string (Windows locale encoding).
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_localemodule.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index 524886d..3fdbc5e 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -319,7 +319,7 @@ exit:
static PyObject*
PyLocale_getdefaultlocale(PyObject* self, PyObject *Py_UNUSED(ignored))
{
- char encoding[100];
+ char encoding[20];
char locale[100];
PyOS_snprintf(encoding, sizeof(encoding), "cp%d", GetACP());