From e94915267b3602b8a6be03ef27709b67343a8ac6 Mon Sep 17 00:00:00 2001 From: Toon Moene Date: Sun, 21 Sep 2003 18:16:46 +0200 Subject: [PATCH] re PR libf2c/11918 (isatty does not call f_init) 2003-09-21 Toon Moene PR libf2c/11918 * fstat_.c: Call f_init(). * isatty_.c: Ditto. * fnum_.c: Check file descriptor before handing it back. From-SVN: r71628 --- libf2c/ChangeLog | 7 +++++++ libf2c/libU77/fnum_.c | 4 ++++ libf2c/libU77/fstat_.c | 2 ++ libf2c/libU77/isatty_.c | 1 + 4 files changed, 14 insertions(+) diff --git a/libf2c/ChangeLog b/libf2c/ChangeLog index 32647c6..78fc92c 100644 --- a/libf2c/ChangeLog +++ b/libf2c/ChangeLog @@ -1,3 +1,10 @@ +2003-09-21 Toon Moene + + 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 * configure: Regenerate. diff --git a/libf2c/libU77/fnum_.c b/libf2c/libU77/fnum_.c index daf8f3d..27cadec 100644 --- a/libf2c/libU77/fnum_.c +++ b/libf2c/libU77/fnum_.c @@ -27,6 +27,10 @@ G77_fnum_0 (integer * lunit) { 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 */ diff --git a/libf2c/libU77/fstat_.c b/libf2c/libU77/fstat_.c index e978c6a..7fd439c 100644 --- a/libf2c/libU77/fstat_.c +++ b/libf2c/libU77/fstat_.c @@ -23,6 +23,7 @@ Boston, MA 02111-1307, USA. */ #include "config.h" #endif #include "f2c.h" +#include "fio.h" #include #include @@ -34,6 +35,7 @@ G77_fstat_0 (const integer * lunit, integer statb[13]) 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; diff --git a/libf2c/libU77/isatty_.c b/libf2c/libU77/isatty_.c index fa2f56d..a781f75 100644 --- a/libf2c/libU77/isatty_.c +++ b/libf2c/libU77/isatty_.c @@ -30,6 +30,7 @@ extern integer G77_fnum_0 (integer *); 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 -- 2.7.4