diff options
Diffstat (limited to 'Python/errors.c')
-rw-r--r-- | Python/errors.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Python/errors.c b/Python/errors.c index 1a643c0..c0efbf1 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -277,8 +277,9 @@ PyErr_NoMemory() } PyObject * -PyErr_SetFromErrno(exc) +PyErr_SetFromErrnoWithFilename(exc, filename) PyObject *exc; + char *filename; { PyObject *v; int i = errno; @@ -286,13 +287,24 @@ PyErr_SetFromErrno(exc) if (i == EINTR && PyErr_CheckSignals()) return NULL; #endif - v = Py_BuildValue("(is)", i, strerror(i)); + if (filename != NULL && Py_UseClassExceptionsFlag) + v = Py_BuildValue("(iss)", i, strerror(i), filename); + else + v = Py_BuildValue("(is)", i, strerror(i)); if (v != NULL) { PyErr_SetObject(exc, v); Py_DECREF(v); } return NULL; } + + +PyObject * +PyErr_SetFromErrno(exc) + PyObject *exc; +{ + return PyErr_SetFromErrnoWithFilename(exc, NULL); +} void PyErr_BadInternalCall() |