diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c index 8c7bf86c2bd..4ecba3a8f69 100644 --- a/libgfortran/io/unix.c +++ b/libgfortran/io/unix.c @@ -917,6 +917,27 @@ regular_file (st_parameter_open *opp, unit_flags *flags) } #endif + +#ifdef __MINGW32__ + if (opp->file_len == 7) + { + if (strncmp (path, "CONOUT$", 7) == 0 + || strncmp (path, "CONERR$", 7) == 0) + { + fd = open ("CONOUT$", O_WRONLY); + flags->action = ACTION_WRITE; + return fd; + } + } + + if (opp->file_len == 6 && strncmp (path, "CONIN$", 6) == 0) + { + fd = open ("CONIN$", O_RDONLY); + flags->action = ACTION_READ; + return fd; + } +#endif + rwflag = 0; switch (flags->action)