bpo-34485: Add _Py_ClearStandardStreamEncoding() (GH-8982)
* Move Py_SetStandardStreamEncoding() from pylifecycle.c
to coreconfig.c
* Add _Py_ClearStandardStreamEncoding() private function.
* pymain_free() now calls _Py_ClearStandardStreamEncoding().
* Add assertions add the end of _PyCoreConfig_Read()
* _PyCoreConfig_Copy(): rename COPY_STR_ATTR() macro
to COPY_WSTR_ATTR().
* Fix get_stdio_errors() indentation.
diff --git a/Modules/main.c b/Modules/main.c
index 82e0093..f93ca4d 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -466,6 +466,7 @@
remain valid after Py_Finalize(), since
Py_Initialize()-Py_Finalize() can be called multiple times. */
_PyPathConfig_ClearGlobal();
+ _Py_ClearStandardStreamEncoding();
/* Force the allocator used by pymain_read_conf() */
PyMemAllocatorEx old_alloc;
@@ -1262,7 +1263,6 @@
return -1;
}
- assert(config->use_environment >= 0);
if (config->use_environment) {
err = cmdline_init_env_warnoptions(pymain, config, cmdline);
if (_Py_INIT_FAILED(err)) {