Kaydet (Commit) 739cf4e3 authored tarafından Victor Stinner's avatar Victor Stinner

Py_FrozenMain() now uses _Py_char2wchar() to decode command line arguments, as

done in main()
üst b5245bec
...@@ -52,27 +52,13 @@ Py_FrozenMain(int argc, char **argv) ...@@ -52,27 +52,13 @@ Py_FrozenMain(int argc, char **argv)
oldloc = setlocale(LC_ALL, NULL); oldloc = setlocale(LC_ALL, NULL);
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
for (i = 0; i < argc; i++) { for (i = 0; i < argc; i++) {
#ifdef HAVE_BROKEN_MBSTOWCS argv_copy[i] = _Py_char2wchar(argv[i], NULL);
size_t argsize = strlen(argv[i]);
#else
size_t argsize = mbstowcs(NULL, argv[i], 0);
#endif
size_t count;
if (argsize == (size_t)-1) {
fprintf(stderr, "Could not convert argument %d to string\n", i);
return 1;
}
argv_copy[i] = PyMem_RawMalloc((argsize+1)*sizeof(wchar_t));
argv_copy2[i] = argv_copy[i];
if (!argv_copy[i]) { if (!argv_copy[i]) {
fprintf(stderr, "out of memory\n"); fprintf(stderr, "Unable to decode the command line argument #%i\n",
return 1; i + 1);
}
count = mbstowcs(argv_copy[i], argv[i], argsize+1);
if (count == (size_t)-1) {
fprintf(stderr, "Could not convert argument %d to string\n", i);
return 1; return 1;
} }
argv_copy2[i] = argv_copy[i];
} }
setlocale(LC_ALL, oldloc); setlocale(LC_ALL, oldloc);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment