MW does not always set errno on failing fopen()
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 @@
#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 @@
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;