summaryrefslogtreecommitdiffstats
path: root/Python/pylifecycle.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r--Python/pylifecycle.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 28704c1..cc64cf9 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1576,21 +1576,25 @@ initfsencoding(PyInterpreterState *interp)
Py_FileSystemDefaultEncodeErrors = "surrogatepass";
}
#else
- if (Py_FileSystemDefaultEncoding == NULL &&
- interp->core_config.utf8_mode)
- {
- Py_FileSystemDefaultEncoding = "utf-8";
- Py_HasFileSystemDefaultEncoding = 1;
- }
- else if (Py_FileSystemDefaultEncoding == NULL) {
- Py_FileSystemDefaultEncoding = get_locale_encoding();
- if (Py_FileSystemDefaultEncoding == NULL) {
- return _Py_INIT_ERR("Unable to get the locale encoding");
+ if (Py_FileSystemDefaultEncoding == NULL) {
+ if (interp->core_config.utf8_mode) {
+ Py_FileSystemDefaultEncoding = "utf-8";
+ Py_HasFileSystemDefaultEncoding = 1;
+ }
+ else if (_Py_GetForceASCII()) {
+ Py_FileSystemDefaultEncoding = "ascii";
+ Py_HasFileSystemDefaultEncoding = 1;
}
+ else {
+ Py_FileSystemDefaultEncoding = get_locale_encoding();
+ if (Py_FileSystemDefaultEncoding == NULL) {
+ return _Py_INIT_ERR("Unable to get the locale encoding");
+ }
- Py_HasFileSystemDefaultEncoding = 0;
- interp->fscodec_initialized = 1;
- return _Py_INIT_OK();
+ Py_HasFileSystemDefaultEncoding = 0;
+ interp->fscodec_initialized = 1;
+ return _Py_INIT_OK();
+ }
}
#endif