diff options
| author | Victor Stinner <vstinner@python.org> | 2020-11-04 11:20:10 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-04 11:20:10 +0100 | 
| commit | 3529718925f40d14ed48d281d809187bc7314a14 (patch) | |
| tree | 1f51f7fb13e93df52a45291fe5384de6e9e09a16 /Python/fileutils.c | |
| parent | 0001a1b69ecda47b0406daa88c2943877580bcae (diff) | |
| download | cpython-git-3529718925f40d14ed48d281d809187bc7314a14.tar.gz | |
bpo-42236: os.device_encoding() respects UTF-8 Mode (GH-23119)
On Unix, the os.device_encoding() function now returns 'UTF-8' rather
than the device encoding if the Python UTF-8 Mode is enabled.
Diffstat (limited to 'Python/fileutils.c')
| -rw-r--r-- | Python/fileutils.c | 18 | 
1 files changed, 7 insertions, 11 deletions
| diff --git a/Python/fileutils.c b/Python/fileutils.c index 5177b37288..b589d7390d 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -55,9 +55,6 @@ get_surrogateescape(_Py_error_handler errors, int *surrogateescape)  PyObject *  _Py_device_encoding(int fd)  { -#if defined(MS_WINDOWS) -    UINT cp; -#endif      int valid;      _Py_BEGIN_SUPPRESS_IPH      valid = isatty(fd); @@ -66,6 +63,7 @@ _Py_device_encoding(int fd)          Py_RETURN_NONE;  #if defined(MS_WINDOWS) +    UINT cp;      if (fd == 0)          cp = GetConsoleCP();      else if (fd == 1 || fd == 2) @@ -74,16 +72,14 @@ _Py_device_encoding(int fd)          cp = 0;      /* GetConsoleCP() and GetConsoleOutputCP() return 0 if the application         has no console */ -    if (cp != 0) -        return PyUnicode_FromFormat("cp%u", (unsigned int)cp); -#elif defined(CODESET) -    { -        char *codeset = nl_langinfo(CODESET); -        if (codeset != NULL && codeset[0] != 0) -            return PyUnicode_FromString(codeset); +    if (cp == 0) { +        Py_RETURN_NONE;      } + +    return PyUnicode_FromFormat("cp%u", (unsigned int)cp); +#else +    return _Py_GetLocaleEncodingObject();  #endif -    Py_RETURN_NONE;  }  #if !defined(_Py_FORCE_UTF8_FS_ENCODING) && !defined(MS_WINDOWS) | 
