mirror of
https://github.com/python/cpython.git
synced 2025-07-19 09:15:34 +00:00
Issue #16416: OS data are now always encoded/decoded to/from
UTF-8/surrogateescape, instead of the locale encoding (which may be ASCII if no locale environment variable is set), to avoid inconsistencies with os.fsencode() and os.fsdecode() functions which are already using UTF-8/surrogateescape.
This commit is contained in:
parent
29824550b1
commit
e262377cab
3 changed files with 51 additions and 10 deletions
|
@ -15,10 +15,6 @@ wmain(int argc, wchar_t **argv)
|
|||
}
|
||||
#else
|
||||
|
||||
#ifdef __APPLE__
|
||||
extern wchar_t* _Py_DecodeUTF8_surrogateescape(const char *s, Py_ssize_t size);
|
||||
#endif
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
|
@ -45,11 +41,7 @@ main(int argc, char **argv)
|
|||
oldloc = strdup(setlocale(LC_ALL, NULL));
|
||||
setlocale(LC_ALL, "");
|
||||
for (i = 0; i < argc; i++) {
|
||||
#ifdef __APPLE__
|
||||
argv_copy[i] = _Py_DecodeUTF8_surrogateescape(argv[i], strlen(argv[i]));
|
||||
#else
|
||||
argv_copy[i] = _Py_char2wchar(argv[i], NULL);
|
||||
#endif
|
||||
if (!argv_copy[i]) {
|
||||
free(oldloc);
|
||||
fprintf(stderr, "Fatal Python error: "
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue