2010-08-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 14 Aug 2010 18:59:18 +0000 (18:59 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 14 Aug 2010 18:59:18 +0000 (18:59 +0000)
PR libfortran/44931
* io/inquire.c (inquire_via_unit): Add special case for __MINGW32__ to
return special file names CONIN$, CONOUT$, and CONERR$.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163245 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/io/inquire.c

index 6e0ec80..9f76797 100644 (file)
@@ -1,3 +1,9 @@
+2010-08-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/44931
+       * io/inquire.c (inquire_via_unit): Add special case for __MINGW32__ to
+       return special file names CONIN$, CONOUT$, and CONERR$.
+
 2010-08-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libfortran/45143
index 540fecb..c4994ed 100644 (file)
@@ -83,8 +83,19 @@ inquire_via_unit (st_parameter_inquire *iqp, gfc_unit * u)
            fstrcpy (iqp->name, iqp->name_len, u->file, u->file_len);
        }
       else
-#endif
        fstrcpy (iqp->name, iqp->name_len, u->file, u->file_len);
+#elif defined __MINGW32__
+      if (u->unit_number == options.stdin_unit)
+       fstrcpy (iqp->name, iqp->name_len, "CONIN$", sizeof("CONIN$"));
+      else if (u->unit_number == options.stdout_unit)
+       fstrcpy (iqp->name, iqp->name_len, "CONOUT$", sizeof("CONOUT$"));
+      else if (u->unit_number == options.stderr_unit)
+       fstrcpy (iqp->name, iqp->name_len, "CONERR$", sizeof("CONERR$"));
+      else
+       fstrcpy (iqp->name, iqp->name_len, u->file, u->file_len);
+#else
+    fstrcpy (iqp->name, iqp->name_len, u->file, u->file_len);
+#endif
     }
 
   if ((cf & IOPARM_INQUIRE_HAS_ACCESS) != 0)