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.
This commit is contained in:
Victor Stinner 2010-06-11 00:36:33 +00:00
parent 2b293cf1a5
commit 7f84ab5952
1 changed files with 19 additions and 17 deletions

View File

@ -703,24 +703,26 @@ initfsencoding(void)
#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 */