diff options
Diffstat (limited to 'libf2c/libU77')
-rw-r--r-- | libf2c/libU77/fnum_.c | 4 | ||||
-rw-r--r-- | libf2c/libU77/fstat_.c | 2 | ||||
-rw-r--r-- | libf2c/libU77/isatty_.c | 1 |
3 files changed, 7 insertions, 0 deletions
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 <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; + 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 |