diff options
author | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-18 01:20:06 +0000 |
---|---|---|
committer | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-18 01:20:06 +0000 |
commit | 2cd58ad70f2065e7717dff301b3a65349d1a9be0 (patch) | |
tree | ee99eee77195e9d423d2ec6b517c2cf6ab9bae94 /libgfortran/io/write.c | |
parent | 30aea172c1db83aa6b99622d0042f2085c46879c (diff) |
2004-08-18 Victor Leikehman <lei@il.ibm.com>
PR fortran/13278
* trans-io.c (transfer_namelist_element): New. Recursively handle
derived-type variables. Pass string lengths.
(build_dt): Code moved to build_namelist, with some
changes and additions.
(gfc_build_io_library_fndecls): Declare the fifth
argument in st_set_nml_var_char -- string_length.
libgfortran/
* io/transfer.c (st_set_nml_var)
* io/write.c (namelist_write): Allow var_name and var_name_len to be
null. For strings, use string_length field instead of len.
* io/io.h (struct namelist_type): New field string_length.
(st_set_nml_var_char): New argument string_length.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86166 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/io/write.c')
-rw-r--r-- | libgfortran/io/write.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 1af8537d7512..67c769ae9204 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -1122,8 +1122,11 @@ namelist_write (void) num ++; t2 = t1; t1 = t1->next; - write_character(t2->var_name, strlen(t2->var_name)); - write_character("=",1); + if (t2->var_name) + { + write_character(t2->var_name, strlen(t2->var_name)); + write_character("=",1); + } len = t2->len; p = t2->mem_pos; switch (t2->type) @@ -1135,7 +1138,7 @@ namelist_write (void) write_logical (p, len); break; case BT_CHARACTER: - write_character (p, len); + write_character (p, t2->string_length); break; case BT_REAL: write_real (p, len); |