initfsencoding(): get_codeset() failure is now a fatal error

Don't fallback to utf-8 anymore to avoid mojibake. I never got any error from
his function.
This commit is contained in:
Victor Stinner 2010-10-19 00:05:51 +00:00
parent 07298a1f04
commit e474309bb7
1 changed files with 6 additions and 13 deletions

View File

@ -730,21 +730,14 @@ initfsencoding(void)
/* 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. */
initialized by other means. */
codeset = get_codeset();
if (codeset != NULL) {
Py_FileSystemDefaultEncoding = codeset;
Py_HasFileSystemDefaultEncoding = 0;
return;
} else {
fprintf(stderr, "Unable to get the locale encoding:\n");
PyErr_Print();
}
if (codeset == NULL)
Py_FatalError("Py_Initialize: Unable to get the locale encoding");
fprintf(stderr, "Unable to get the filesystem encoding: fallback to utf-8\n");
Py_FileSystemDefaultEncoding = "utf-8";
Py_HasFileSystemDefaultEncoding = 1;
Py_FileSystemDefaultEncoding = codeset;
Py_HasFileSystemDefaultEncoding = 0;
return;
}
#endif