OSDN Git Service

2003-09-21 Toon Moene <toon@moene.indiv.nluug.nl>
authortoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 21 Sep 2003 16:16:46 +0000 (16:16 +0000)
committertoon <toon@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 21 Sep 2003 16:16:46 +0000 (16:16 +0000)
PR libf2c/11918
* fstat_.c: Call f_init().
* isatty_.c: Ditto.
* fnum_.c: Check file descriptor before handing it back.

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

libf2c/ChangeLog
libf2c/libU77/fnum_.c
libf2c/libU77/fstat_.c
libf2c/libU77/isatty_.c

index 32647c6..78fc92c 100644 (file)
@@ -1,3 +1,10 @@
+2003-09-21  Toon Moene  <toon@moene.indiv.nluug.nl>
+
+       PR libf2c/11918
+       * fstat_.c: Call f_init().
+       * isatty_.c: Ditto.
+       * fnum_.c: Check file descriptor before handing it back.
+
 Tue Sep  9 15:22:57 2003  Alan Modra  <amodra@bigpond.net.au>
 
        * configure: Regenerate.
 Tue Sep  9 15:22:57 2003  Alan Modra  <amodra@bigpond.net.au>
 
        * configure: Regenerate.
index daf8f3d..27cadec 100644 (file)
@@ -27,6 +27,10 @@ G77_fnum_0 (integer * lunit)
 {
   if (*lunit >= MXUNIT || *lunit < 0)
     err (1, 101, "fnum");
 {
   if (*lunit >= MXUNIT || *lunit < 0)
     err (1, 101, "fnum");
+
+  if (f__units[*lunit].ufd == NULL)
+    err (1, 114, "fnum");
+
   /* f__units is a table of descriptions for the unit numbers (defined
      in io.h).  Use file descriptor (ufd) and fileno rather than udev
      field since udev is unix specific */
   /* f__units is a table of descriptions for the unit numbers (defined
      in io.h).  Use file descriptor (ufd) and fileno rather than udev
      field since udev is unix specific */
index e978c6a..7fd439c 100644 (file)
@@ -23,6 +23,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #endif
 #include "f2c.h"
 #include "config.h"
 #endif
 #include "f2c.h"
+#include "fio.h"
 #include <sys/types.h>
 #include <sys/stat.h>
 
 #include <sys/types.h>
 #include <sys/stat.h>
 
@@ -34,6 +35,7 @@ G77_fstat_0 (const integer * lunit, integer statb[13])
   int err;
   struct stat buf;
 
   int err;
   struct stat buf;
 
+  if (f__init != 1) f_init();
   err = fstat (G77_fnum_0 (lunit), &buf);
   statb[0] = buf.st_dev;
   statb[1] = buf.st_ino;
   err = fstat (G77_fnum_0 (lunit), &buf);
   statb[0] = buf.st_dev;
   statb[1] = buf.st_ino;
index fa2f56d..a781f75 100644 (file)
@@ -30,6 +30,7 @@ extern integer G77_fnum_0 (integer *);
 logical
 G77_isatty_0 (integer * lunit)
 {
 logical
 G77_isatty_0 (integer * lunit)
 {
+  if (f__init != 1) f_init();
   if (*lunit >= MXUNIT || *lunit < 0)
     err (1, 101, "isatty");
   /* f__units is a table of descriptions for the unit numbers (defined
   if (*lunit >= MXUNIT || *lunit < 0)
     err (1, 101, "isatty");
   /* f__units is a table of descriptions for the unit numbers (defined