mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Patch #534304: Implement phase 1 of PEP 263.
This commit is contained in:
parent
a729daf2e4
commit
00f1e3f5a5
13 changed files with 656 additions and 31 deletions
|
@ -1221,6 +1221,7 @@ static void
|
|||
err_input(perrdetail *err)
|
||||
{
|
||||
PyObject *v, *w, *errtype;
|
||||
PyObject* u = NULL;
|
||||
char *msg = NULL;
|
||||
errtype = PyExc_SyntaxError;
|
||||
v = Py_BuildValue("(ziiz)", err->filename,
|
||||
|
@ -1272,12 +1273,24 @@ err_input(perrdetail *err)
|
|||
errtype = PyExc_IndentationError;
|
||||
msg = "too many levels of indentation";
|
||||
break;
|
||||
case E_DECODE: { /* XXX */
|
||||
PyThreadState* tstate = PyThreadState_Get();
|
||||
PyObject* value = tstate->curexc_value;
|
||||
if (value != NULL) {
|
||||
u = PyObject_Repr(value);
|
||||
if (u != NULL) {
|
||||
msg = PyString_AsString(u);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
default:
|
||||
fprintf(stderr, "error=%d\n", err->error);
|
||||
msg = "unknown parsing error";
|
||||
break;
|
||||
}
|
||||
w = Py_BuildValue("(sO)", msg, v);
|
||||
Py_XDECREF(u);
|
||||
Py_XDECREF(v);
|
||||
PyErr_SetObject(errtype, w);
|
||||
Py_XDECREF(w);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue