mirror of https://github.com/python/cpython
compiler_error(): use PyUnicode_DecodeFSDefault() to decode the filename,
instead of utf-8 in strict mode.
This commit is contained in:
parent
15a71cdad2
commit
c049982ea5
|
@ -3361,7 +3361,7 @@ compiler_in_loop(struct compiler *c) {
|
||||||
static int
|
static int
|
||||||
compiler_error(struct compiler *c, const char *errstr)
|
compiler_error(struct compiler *c, const char *errstr)
|
||||||
{
|
{
|
||||||
PyObject *loc;
|
PyObject *loc, *filename;
|
||||||
PyObject *u = NULL, *v = NULL;
|
PyObject *u = NULL, *v = NULL;
|
||||||
|
|
||||||
loc = PyErr_ProgramText(c->c_filename, c->u->u_lineno);
|
loc = PyErr_ProgramText(c->c_filename, c->u->u_lineno);
|
||||||
|
@ -3369,7 +3369,16 @@ compiler_error(struct compiler *c, const char *errstr)
|
||||||
Py_INCREF(Py_None);
|
Py_INCREF(Py_None);
|
||||||
loc = Py_None;
|
loc = Py_None;
|
||||||
}
|
}
|
||||||
u = Py_BuildValue("(ziiO)", c->c_filename, c->u->u_lineno,
|
if (c->c_filename != NULL) {
|
||||||
|
filename = PyUnicode_DecodeFSDefault(c->c_filename);
|
||||||
|
if (!filename)
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Py_INCREF(Py_None);
|
||||||
|
filename = Py_None;
|
||||||
|
}
|
||||||
|
u = Py_BuildValue("(NiiO)", filename, c->u->u_lineno,
|
||||||
c->u->u_col_offset, loc);
|
c->u->u_col_offset, loc);
|
||||||
if (!u)
|
if (!u)
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
Loading…
Reference in New Issue