bpo-34207: Fix pymain_read_conf() for UTF-8 Mode (GH-8868) (GH-8870) · python/cpython@80a0eba
@@ -1982,6 +1982,7 @@ pymain_read_conf_impl(_PyMain *pymain, _Py_CommandLineDetails *cmdline)
19821982static int
19831983pymain_read_conf(_PyMain *pymain, _Py_CommandLineDetails *cmdline)
19841984{
1985+int init_utf8_mode = Py_UTF8Mode;
19851986_PyCoreConfig *config = &pymain->config;
19861987_PyCoreConfig save_config = _PyCoreConfig_INIT;
19871988int res = -1;
@@ -2016,6 +2017,10 @@ pymain_read_conf(_PyMain *pymain, _Py_CommandLineDetails *cmdline)
20162017 goto done;
20172018 }
201820192020+/* bpo-34207: Py_DecodeLocale(), Py_EncodeLocale() and similar
2021+ functions depend on Py_UTF8Mode. */
2022+Py_UTF8Mode = config->utf8_mode;
2023+20192024if (pymain_init_cmdline_argv(pymain, cmdline) < 0) {
20202025 goto done;
20212026 }
@@ -2086,7 +2091,7 @@ pymain_read_conf(_PyMain *pymain, _Py_CommandLineDetails *cmdline)
20862091setlocale(LC_ALL, oldloc);
20872092PyMem_RawFree(oldloc);
20882093 }
2089-2094+ Py_UTF8Mode = init_utf8_mode ;
20902095return res;
20912096}
20922097