From 41c8321252a84d8a9d0ded374e7db7a4393036be Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Fri, 9 Nov 2001 16:17:24 +0000 Subject: Fix SF buf #476953: Bad more for opening file gives bad msg. If fopen() fails with EINVAL it means that the mode argument is invalid. Return the mode in the error message instead of the filename. --- Objects/fileobject.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Objects/fileobject.c') diff --git a/Objects/fileobject.c b/Objects/fileobject.c index ebccc845cc..9284185be6 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -121,13 +121,17 @@ open_the_file(PyFileObject *f, char *name, char *mode) if (f->f_fp == NULL) { #ifdef NO_FOPEN_ERRNO /* Metroworks only, not testable, so unchanged */ - if ( errno == 0 ) { + if (errno == 0) { PyErr_SetString(PyExc_IOError, "Cannot open file"); Py_DECREF(f); return NULL; } #endif - PyErr_SetFromErrnoWithFilename(PyExc_IOError, name); + if (errno == EINVAL) + PyErr_Format(PyExc_IOError, "invalid argument: %s", + mode); + else + PyErr_SetFromErrnoWithFilename(PyExc_IOError, name); f = NULL; } return (PyObject *)f; -- cgit v1.2.1