mirror of
https://github.com/python/cpython.git
synced 2025-07-19 01:05:26 +00:00
add PyErr_SyntaxLocationEx, to support adding a column offset
This commit is contained in:
parent
26d64aeee4
commit
2c53971b37
3 changed files with 32 additions and 1 deletions
|
@ -780,12 +780,18 @@ PyErr_WriteUnraisable(PyObject *obj)
|
|||
extern PyObject *PyModule_GetWarningsModule(void);
|
||||
|
||||
|
||||
void
|
||||
PyErr_SyntaxLocation(const char *filename, int lineno) {
|
||||
PyErr_SyntaxLocationEx(filename, lineno, -1);
|
||||
}
|
||||
|
||||
|
||||
/* Set file and line information for the current exception.
|
||||
If the exception is not a SyntaxError, also sets additional attributes
|
||||
to make printing of exceptions believe it is a syntax error. */
|
||||
|
||||
void
|
||||
PyErr_SyntaxLocation(const char *filename, int lineno)
|
||||
PyErr_SyntaxLocationEx(const char *filename, int lineno, int col_offset)
|
||||
{
|
||||
PyObject *exc, *v, *tb, *tmp;
|
||||
|
||||
|
@ -802,6 +808,16 @@ PyErr_SyntaxLocation(const char *filename, int lineno)
|
|||
PyErr_Clear();
|
||||
Py_DECREF(tmp);
|
||||
}
|
||||
if (col_offset >= 0) {
|
||||
tmp = PyLong_FromLong(col_offset);
|
||||
if (tmp == NULL)
|
||||
PyErr_Clear();
|
||||
else {
|
||||
if (PyObject_SetAttrString(v, "offset", tmp))
|
||||
PyErr_Clear();
|
||||
Py_DECREF(tmp);
|
||||
}
|
||||
}
|
||||
if (filename != NULL) {
|
||||
tmp = PyUnicode_FromString(filename);
|
||||
if (tmp == NULL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue