Unverified Kaydet (Commit) 21220bbe authored tarafından Victor Stinner's avatar Victor Stinner Kaydeden (comit) GitHub

bpo-34403: Fix initfsencoding() for ASCII (GH-10233)

* Add _Py_GetForceASCII(): check if Python forces the usage of ASCII
  in Py_DecodeLocale() and Py_EncodeLocale().
* initfsencoding() now uses ASCII if _Py_GetForceASCII() is true.
üst 58f7bf3a
......@@ -183,6 +183,10 @@ PyAPI_FUNC(int) _Py_GetLocaleconvNumeric(
#endif /* Py_LIMITED_API */
#ifdef Py_BUILD_CORE
PyAPI_FUNC(int) _Py_GetForceASCII(void);
#endif
#ifdef __cplusplus
}
#endif
......
......@@ -180,6 +180,18 @@ error:
return 1;
}
int
_Py_GetForceASCII(void)
{
if (force_ascii == -1) {
force_ascii = check_force_ascii();
}
return force_ascii;
}
static int
encode_ascii(const wchar_t *text, char **str,
size_t *error_pos, const char **reason,
......
......@@ -1615,6 +1615,10 @@ initfsencoding(PyInterpreterState *interp)
Py_FileSystemDefaultEncoding = "utf-8";
Py_HasFileSystemDefaultEncoding = 1;
}
else if (_Py_GetForceASCII()) {
Py_FileSystemDefaultEncoding = "ascii";
Py_HasFileSystemDefaultEncoding = 1;
}
else if (Py_FileSystemDefaultEncoding == NULL) {
Py_FileSystemDefaultEncoding = get_locale_encoding();
if (Py_FileSystemDefaultEncoding == NULL) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment