diff options
author | Xavier de Gaye <xdegaye@users.sourceforge.net> | 2016-12-15 20:59:58 +0100 |
---|---|---|
committer | Xavier de Gaye <xdegaye@users.sourceforge.net> | 2016-12-15 20:59:58 +0100 |
commit | 7ce4d17c0d9aa59119a8a9b730be0cfd2c593ef7 (patch) | |
tree | 3bf8a3a299b592672e5be786475e8cd46507c0c1 /Python/fileutils.c | |
parent | 88be25781a6930a8ef45fb23eb1f2d4025f29799 (diff) | |
download | cpython-7ce4d17c0d9aa59119a8a9b730be0cfd2c593ef7.tar.gz |
Issue #26919: On Android, operating system data is now always encoded/decoded
to/from UTF-8, instead of the locale encoding to avoid inconsistencies with
os.fsencode() and os.fsdecode() which are already using UTF-8.
Diffstat (limited to 'Python/fileutils.c')
-rw-r--r-- | Python/fileutils.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Python/fileutils.c b/Python/fileutils.c index 6a32c42c80..e84d66e99a 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -20,7 +20,7 @@ extern int winerror_to_errno(int); #include <fcntl.h> #endif /* HAVE_FCNTL_H */ -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__ANDROID__) extern wchar_t* _Py_DecodeUTF8_surrogateescape(const char *s, Py_ssize_t size); #endif @@ -273,7 +273,7 @@ decode_ascii_surrogateescape(const char *arg, size_t *size) wchar_t* Py_DecodeLocale(const char* arg, size_t *size) { -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__ANDROID__) wchar_t *wstr; wstr = _Py_DecodeUTF8_surrogateescape(arg, strlen(arg)); if (size != NULL) { @@ -406,7 +406,7 @@ oom: if (size != NULL) *size = (size_t)-1; return NULL; -#endif /* __APPLE__ */ +#endif /* __APPLE__ or __ANDROID__ */ } /* Encode a wide character string to the locale encoding with the @@ -424,7 +424,7 @@ oom: char* Py_EncodeLocale(const wchar_t *text, size_t *error_pos) { -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__ANDROID__) Py_ssize_t len; PyObject *unicode, *bytes = NULL; char *cpath; @@ -522,7 +522,7 @@ Py_EncodeLocale(const wchar_t *text, size_t *error_pos) bytes = result; } return result; -#endif /* __APPLE__ */ +#endif /* __APPLE__ or __ANDROID__ */ } |