PyFile_FromString(): If an exception occurs, pass in the filename that
was used so it's reflected in the IOError. Call
PyErr_SetFromErrnoWithFilename().
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index d43f113..d3b9894 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -137,13 +137,14 @@
}
if (f->f_fp == NULL) {
#ifdef NO_FOPEN_ERRNO
+ /* Metroworks only, not testable, so unchanged */
if ( errno == 0 ) {
PyErr_SetString(PyExc_IOError, "Cannot open file");
Py_DECREF(f);
return NULL;
}
#endif
- PyErr_SetFromErrno(PyExc_IOError);
+ PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
Py_DECREF(f);
return NULL;
}