aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>2005-11-05 08:34:07 +0000
committerFrancois-Xavier Coudert <coudert@clipper.ens.fr>2005-11-05 08:34:07 +0000
commit60546f23d0b3a15321083e21ea581453469bfc21 (patch)
tree24d8f3b9b29d15f5a5b0db76b7d7bc01e309ac71 /libgfortran
parent06264402bf3501b6149b49d3d782a9c494a52aee (diff)
* intrinsic.c (add_functions): Add function version of TTYNAM.
* intrinsic.h: Add prototypes for gfc_check_ttynam and gfc_resolve_ttynam. * gfortran.h: Add case for GFC_ISYM_TTYNAM. * iresolve.c (gfc_resolve_ttynam): New function. * trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree for function call to library ttynam. * check.c (gfc_check_ttynam): New function. * trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function. (): Call gfc_conv_intrinsic_ttynam. * trans.h: Add prototype for gfor_fndecl_ttynam. * intrinsics/tty.c (ttynam): New function. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@106522 138bc75d-0d04-0410-961f-82ee72b054a4
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;
+}