aboutsummaryrefslogtreecommitdiff
path: root/libf2c/libU77
diff options
context:
space:
mode:
Diffstat (limited to 'libf2c/libU77')
-rw-r--r--libf2c/libU77/fnum_.c4
-rw-r--r--libf2c/libU77/fstat_.c2
-rw-r--r--libf2c/libU77/isatty_.c1
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