Mercurial > cpython-lru_cache-weakref
diff Python/compile.c @ 65483:244cbcb67dcd
compiler_error(): use PyUnicode_DecodeFSDefault() to decode the filename,
instead of utf-8 in strict mode.
| author | Victor Stinner <victor.stinner@haypocalc.com> |
|---|---|
| date | Sun, 17 Oct 2010 19:16:33 +0000 |
| parents | 55ed5c524428 |
| children | 724920a015f7 |
line wrap: on
line diff
--- a/Python/compile.c Sun Oct 17 19:03:16 2010 +0000 +++ b/Python/compile.c Sun Oct 17 19:16:33 2010 +0000 @@ -3361,7 +3361,7 @@ static int compiler_error(struct compiler *c, const char *errstr) { - PyObject *loc; + PyObject *loc, *filename; PyObject *u = NULL, *v = NULL; loc = PyErr_ProgramText(c->c_filename, c->u->u_lineno); @@ -3369,7 +3369,16 @@ Py_INCREF(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); if (!u) goto exit;
