Core and Builtins
-----------------
+- Issue #4747: When the terminal does not use utf-8, executing a script with
+ non-ascii characters in its name could fail with a "SyntaxError: None" error.
+
- Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open
file with `bytes' filename on Windows.
}
if (sts==-1) {
- char cfilename[PATH_MAX];
+ PyObject *filenameObj = NULL;
char *p_cfilename = "<stdin>";
if (filename) {
- size_t r = wcstombs(cfilename, filename, PATH_MAX);
- p_cfilename = cfilename;
- if (r == (size_t)-1 || r >= PATH_MAX)
+ filenameObj = PyUnicode_FromWideChar(
+ filename, wcslen(filename));
+ if (filenameObj != NULL)
+ p_cfilename = _PyUnicode_AsString(filenameObj);
+ else
p_cfilename = "<decoding error>";
}
sts = PyRun_AnyFileExFlags(
fp,
p_cfilename,
filename != NULL, &cf) != 0;
+ Py_XDECREF(filenameObj);
}
}