s-fileio.adb (Is_Open): Add check for usability of the underlying file stream.
authorPascal Obry <obry@adacore.com>
Tue, 14 Aug 2007 08:49:36 +0000 (10:49 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 14 Aug 2007 08:49:36 +0000 (10:49 +0200)
2007-08-14  Pascal Obry  <obry@adacore.com>

* s-fileio.adb (Is_Open): Add check for usability of the underlying
file stream.

From-SVN: r127461

gcc/ada/s-fileio.adb

index 3ae5d3d51318bbe42fa28ea8d1b0eddfaec967ee..5607e7021b60509702be03929513a2d8600ae5b3 100644 (file)
@@ -610,7 +610,13 @@ package body System.File_IO is
 
    function Is_Open (File : AFCB_Ptr) return Boolean is
    begin
-      return (File /= null);
+      --  We return True if the file is open, and the underlying file stream is
+      --  usable. In particular on Windows an application linked with -mwindows
+      --  option set does not have a console attached. In this case standard
+      --  files (Current_Output, Current_Error, Current_Input) are not created.
+      --  We want Is_Open (Current_Output) to return False in this case.
+
+      return File /= null and then fileno (File.Stream) /= -1;
    end Is_Open;
 
    -------------------