aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog4
-rw-r--r--libgfortran/intrinsics/tty.c26
2 files changed, 30 insertions, 0 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index bb8e3323d1a..0459b6ba9e6 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,7 @@
+2005-11-05 Francois-Xavier Coudert <coudert@clipper.ens.fr>
+
+ * intrinsics/tty.c (ttynam): New function.
+
2005-11-04 Steven G. Kargl <kargls@comcast.net>
PR fortran/24636
diff --git a/libgfortran/intrinsics/tty.c b/libgfortran/intrinsics/tty.c
index 3a3d2bdb98c..f4bfecd9353 100644
--- a/libgfortran/intrinsics/tty.c
+++ b/libgfortran/intrinsics/tty.c
@@ -31,6 +31,7 @@ Boston, MA 02110-1301, USA. */
#include "config.h"
#include "libgfortran.h"
#include "../io/io.h"
+
#include <string.h>
/* LOGICAL FUNCTION ISATTY(UNIT)
@@ -95,3 +96,28 @@ ttynam_sub (int *unit, char * name, gfc_charlen_type name_len)
}
}
}
+
+
+extern void ttynam (char **, gfc_charlen_type *, int);
+export_proto(ttynam);
+
+void
+ttynam (char ** name, gfc_charlen_type * name_len, int unit)
+{
+ gfc_unit *u;
+
+ u = find_unit (unit);
+ if (u != NULL)
+ {
+ *name = stream_ttyname (u->s);
+ if (*name != NULL)
+ {
+ *name_len = strlen (*name);
+ *name = strdup (*name);
+ return;
+ }
+ }
+
+ *name_len = 0;
+ *name = NULL;
+}