summaryrefslogtreecommitdiffstats
path: root/Modules/python.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/python.c')
-rw-r--r--Modules/python.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Modules/python.c b/Modules/python.c
index 47685a4..18f9b3d 100644
--- a/Modules/python.c
+++ b/Modules/python.c
@@ -15,6 +15,10 @@ 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)
{
@@ -41,7 +45,11 @@ 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])
return 1;
argv_copy2[i] = argv_copy[i];