Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 35417:e48fcd4c358d legacy-trunk
Forward UnicodeDecodeError into SyntaxError for source encoding errors.
Will backport to 2.4.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Wed, 24 Aug 2005 08:39:24 +0000 |
| parents | 26bf6c27e9ce |
| children | b8e571e6de2e |
line wrap: on
line diff
--- a/Python/pythonrun.c Wed Aug 24 07:38:12 2005 +0000 +++ b/Python/pythonrun.c Wed Aug 24 08:39:24 2005 +0000 @@ -1474,18 +1474,20 @@ errtype = PyExc_IndentationError; msg = "too many levels of indentation"; break; - case E_DECODE: { /* XXX */ - PyThreadState* tstate = PyThreadState_GET(); - PyObject* value = tstate->curexc_value; + case E_DECODE: { + PyObject *type, *value, *tb; + PyErr_Fetch(&type, &value, &tb); if (value != NULL) { - u = PyObject_Repr(value); + u = PyObject_Str(value); if (u != NULL) { msg = PyString_AsString(u); - break; } } if (msg == NULL) msg = "unknown decode error"; + Py_DECREF(type); + Py_DECREF(value); + Py_DECREF(tb); break; } case E_LINECONT:
