From c613801e8b1f69feb2019d84f4a8e9d47bc403a6 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Sat, 14 Aug 2010 18:59:18 +0000 Subject: [PATCH] re PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin") 2010-08-14 Jerry DeLisle PR libfortran/44931 * io/inquire.c (inquire_via_unit): Add special case for __MINGW32__ to return special file names CONIN$, CONOUT$, and CONERR$. From-SVN: r163245 --- libgfortran/ChangeLog | 6 ++++++ libgfortran/io/inquire.c | 13 ++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 6e0ec80714f..9f767975ac3 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2010-08-14 Jerry DeLisle + + 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 PR libfortran/45143 diff --git a/libgfortran/io/inquire.c b/libgfortran/io/inquire.c index 540fecb2c5b..c4994ed179a 100644 --- a/libgfortran/io/inquire.c +++ b/libgfortran/io/inquire.c @@ -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)