Change 14485 by jhi@alpha on 2002/01/28 23:17:20

        Workaround for DJGPP broken F_GETFL from Laszlo.

Affected files ...

.... //depot/perl/djgpp/djgpp.c#15 edit
.... //depot/perl/perlio.c#160 edit

Differences ...

==== //depot/perl/djgpp/djgpp.c#15 (text) ====
Index: perl/djgpp/djgpp.c
--- perl/djgpp/djgpp.c.~1~      Mon Jan 28 16:30:06 2002
+++ perl/djgpp/djgpp.c  Mon Jan 28 16:30:06 2002
@@ -441,3 +441,16 @@
 
     return res;
 }
+
+int djgpp_get_stream_mode(FILE *f)
+{
+    extern char *__file_handle_modes;
+
+    int mode = __file_handle_modes[fileno(f)];
+    if (f->_flag & _IORW)
+        return mode | O_RDWR;
+    if (f->_flag & _IOWRT)
+        return mode | O_WRONLY;
+    return mode | O_RDONLY;
+}
+

==== //depot/perl/perlio.c#160 (text) ====
Index: perl/perlio.c
--- perl/perlio.c.~1~   Mon Jan 28 16:30:06 2002
+++ perl/perlio.c       Mon Jan 28 16:30:06 2002
@@ -187,6 +187,9 @@
        if (fd >= 0) {
            char mode[8];
            int omode = fcntl(fd, F_GETFL);
+#ifdef DJGPP
+           omode = djgpp_get_stream_mode(f);
+#endif
            PerlIO_intmode2str(omode,mode,NULL);
            /* the r+ is a hack */
            return PerlIO_fdopen(fd, mode);
End of Patch.

Reply via email to