summaryrefslogtreecommitdiffstats
path: root/Python/fileutils.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-05-24 22:09:48 (GMT)
committerGitHub <noreply@github.com>2022-05-24 22:09:48 (GMT)
commit32b7bcffba0e6f6c96d70cafbae1488c6bc36cbc (patch)
tree06c3c684b8b7bf7449be55d8b7f8f856cc74f99d /Python/fileutils.c
parentc7667a2d353cebb0287d29a3ead29b2107425b96 (diff)
downloadcpython-32b7bcffba0e6f6c96d70cafbae1488c6bc36cbc.zip
cpython-32b7bcffba0e6f6c96d70cafbae1488c6bc36cbc.tar.gz
cpython-32b7bcffba0e6f6c96d70cafbae1488c6bc36cbc.tar.bz2
gh-93103: Py_DecodeLocale() uses _PyRuntime.preconfig (#93187)
The Py_DecodeLocale() and Py_EncodeLocale() now use _PyRuntime.preconfig, rather than Py_UTF8Mode and Py_LegacyWindowsFSEncodingFlag global configuration varibles, to decide if the UTF-8 encoding is used or not. As documented, these functions must not be called before Python is preinitialized. The new PyConfig API should now be used, rather than using deprecated functions like Py_SetPath() or PySys_SetArgv().
Diffstat (limited to 'Python/fileutils.c')
-rw-r--r--Python/fileutils.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Python/fileutils.c b/Python/fileutils.c
index a38886a..7e5d01f 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -603,9 +603,9 @@ _Py_DecodeLocaleEx(const char* arg, wchar_t **wstr, size_t *wlen,
return _Py_DecodeUTF8Ex(arg, strlen(arg), wstr, wlen, reason,
errors);
#else
- int use_utf8 = (Py_UTF8Mode == 1);
+ int use_utf8 = (_PyRuntime.preconfig.utf8_mode >= 1);
#ifdef MS_WINDOWS
- use_utf8 |= !Py_LegacyWindowsFSEncodingFlag;
+ use_utf8 |= (_PyRuntime.preconfig.legacy_windows_fs_encoding == 0);
#endif
if (use_utf8) {
return _Py_DecodeUTF8Ex(arg, strlen(arg), wstr, wlen, reason,
@@ -795,9 +795,9 @@ encode_locale_ex(const wchar_t *text, char **str, size_t *error_pos,
return _Py_EncodeUTF8Ex(text, str, error_pos, reason,
raw_malloc, errors);
#else
- int use_utf8 = (Py_UTF8Mode == 1);
+ int use_utf8 = (_PyRuntime.preconfig.utf8_mode >= 1);
#ifdef MS_WINDOWS
- use_utf8 |= !Py_LegacyWindowsFSEncodingFlag;
+ use_utf8 |= (_PyRuntime.preconfig.legacy_windows_fs_encoding == 0);
#endif
if (use_utf8) {
return _Py_EncodeUTF8Ex(text, str, error_pos, reason,