Backport r61468 from trunk: Improves the text of the IOError raised

when open() returns EINVAL.  See issue2158.
This commit is contained in:
Gregory P. Smith 2008-05-03 07:12:23 +00:00
parent fb30cdbf98
commit 9e6649f8ee
1 changed files with 5 additions and 2 deletions

View File

@ -256,9 +256,12 @@ open_the_file(PyFileObject *f, char *name, char *mode)
else if (errno == EINVAL) /* unknown, but not a mode string */
errno = ENOENT;
#endif
/* EINVAL is returned when an invalid filename or
* an invalid mode is supplied. */
if (errno == EINVAL)
PyErr_Format(PyExc_IOError, "invalid mode: %s",
mode);
PyErr_Format(PyExc_IOError,
"invalid filename: %s or mode: %s",
name, mode);
else
PyErr_SetFromErrnoWithFilenameObject(PyExc_IOError, f->f_name);
f = NULL;