diff options
author | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-05 08:34:07 +0000 |
---|---|---|
committer | fxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-05 08:34:07 +0000 |
commit | dbc97b88926e29f1e925b7ac6f14dba1f81b62f8 (patch) | |
tree | 24d8f3b9b29d15f5a5b0db76b7d7bc01e309ac71 /libgfortran | |
parent | 05f9387a923d4a00397a384579828fafabcea476 (diff) | |
download | gcc-dbc97b88926e29f1e925b7ac6f14dba1f81b62f8.tar.gz |
* 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: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106522 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 4 | ||||
-rw-r--r-- | libgfortran/intrinsics/tty.c | 26 |
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; +} |