summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/fileobject.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index df27caf..d833527 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -32,6 +32,10 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifdef THINK_C
#define HAVE_FOPENRF
#endif
+#ifdef __MWERKS__
+/* Mwerks fopen() doesn't always set errno */
+#define NO_FOPEN_ERRNO
+#endif
#define BUF(v) GETSTRINGVALUE((stringobject *)v)
@@ -111,6 +115,13 @@ newfileobject(name, mode)
END_SAVE
}
if (f->f_fp == NULL) {
+#ifdef NO_FOPEN_ERRNO
+ if ( errno == 0 ) {
+ err_setstr(IOError, "Cannot open file");
+ DECREF(f);
+ return NULL;
+ }
+#endif
err_errno(IOError);
DECREF(f);
return NULL;