------- Comment #10 from jvdelisle at gcc dot gnu dot org  2007-07-21 23:08 
-------
Here is a complete patch, tested on Cygwin.  I need to test on mingw.  Can
anyone help with that?

Index: unix.c
===================================================================
--- unix.c      (revision 126808)
+++ unix.c      (working copy)
@@ -81,6 +81,13 @@ Boston, MA 02110-1301, USA.  */
 #define S_IWOTH 0
 #endif

+#ifdef __CYGWIN__
+#define HAVE_DOS_CONIO
+#endif
+
+#ifdef __MINGW32__
+#define HAVE_DOS_CONIO
+#endif

 /* Unix stream I/O module */

@@ -1259,6 +1266,27 @@ regular_file (st_parameter_open *opp, un
   crflag |= O_BINARY;
 #endif

+#ifdef HAVE_DOS_CONIO
+  if (strncmp (path, "CONOUT$", 7) == 0)
+    {
+      fd = STDOUT_FILENO;
+      flags->action = ACTION_WRITE;
+      return fd;
+    }
+  if (strncmp (path, "CONIN$", 6) == 0)
+    {
+      fd = STDIN_FILENO;
+      flags->action = ACTION_READ;
+      return fd;
+    }
+  if (strncmp (path, "CONERR$", 7) == 0)
+    {
+      fd = STDERR_FILENO;
+      flags->action = ACTION_WRITE;
+      return fd;
+    }
+#endif
+
   mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
   fd = open (path, rwflag | crflag, mode);
   if (flags->action != ACTION_UNSPECIFIED)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32784

Reply via email to