Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 62231:72f774903772
Issue #8965: initfsencoding() doesn't change the encoding on Mac OS X
File system encoding have to be hardcoded to "utf-8" on Mac OS X. r81190
introduced a regression: the encoding was changed depending on the locale.
| author | Victor Stinner <victor.stinner@haypocalc.com> |
|---|---|
| date | Fri, 11 Jun 2010 00:36:33 +0000 |
| parents | a25ad9c4ace0 |
| children | 907f564476be |
line wrap: on
line diff
--- a/Python/pythonrun.c Thu Jun 10 20:41:54 2010 +0000 +++ b/Python/pythonrun.c Fri Jun 11 00:36:33 2010 +0000 @@ -703,24 +703,26 @@ #if defined(HAVE_LANGINFO_H) && defined(CODESET) char *codeset; - /* On Unix, set the file system encoding according to the - user's preference, if the CODESET names a well-known - Python codec, and Py_FileSystemDefaultEncoding isn't - initialized by other means. Also set the encoding of - stdin and stdout if these are terminals. */ - codeset = get_codeset(); - if (codeset != NULL) { - Py_FileSystemDefaultEncoding = codeset; - Py_HasFileSystemDefaultEncoding = 0; - return; + if (Py_FileSystemDefaultEncoding == NULL) { + /* On Unix, set the file system encoding according to the + user's preference, if the CODESET names a well-known + Python codec, and Py_FileSystemDefaultEncoding isn't + initialized by other means. Also set the encoding of + stdin and stdout if these are terminals. */ + codeset = get_codeset(); + if (codeset != NULL) { + Py_FileSystemDefaultEncoding = codeset; + Py_HasFileSystemDefaultEncoding = 0; + return; + } + + PyErr_Clear(); + fprintf(stderr, + "Unable to get the locale encoding: " + "fallback to utf-8\n"); + Py_FileSystemDefaultEncoding = "utf-8"; + Py_HasFileSystemDefaultEncoding = 1; } - - PyErr_Clear(); - fprintf(stderr, - "Unable to get the locale encoding: " - "fallback to utf-8\n"); - Py_FileSystemDefaultEncoding = "utf-8"; - Py_HasFileSystemDefaultEncoding = 1; #endif /* the encoding is mbcs, utf-8 or ascii */
