diff options
author | Janne Blomqvist <jblomqvi@cc.hut.fi> | 2004-05-16 17:07:58 +0300 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-05-16 14:07:58 +0000 |
commit | d464f8e99ef16ef8eb26f285e54a2d5ce6024c64 (patch) | |
tree | fc5b18ebbb3380f95f4884f2faff23226c4d27e6 /libgfortran/io/write.c | |
parent | 000aa32a49ae77b3703599eb9a66b9f7d0ab7032 (diff) | |
download | gcc-d464f8e99ef16ef8eb26f285e54a2d5ce6024c64.tar.gz |
write.c (write_logical): Don't print extra blank.
* io/write.c (write_logical): Don't print extra blank.
(write_integer): Base field width on kind.
(list_formatted_write): Output initial blank.
Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r81914
Diffstat (limited to 'libgfortran/io/write.c')
-rw-r--r-- | libgfortran/io/write.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 05dbd9bb789..8e5a3204d86 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -875,12 +875,10 @@ write_char (char c) /* write_logical()-- Write a list-directed logical value */ -/* Default logical output should be L2 - according to DEC fortran Manual. */ + static void write_logical (const char *source, int length) { - write_char (' '); write_char (extract_int (source, length) ? 'T' : 'F'); } @@ -893,10 +891,33 @@ write_integer (const char *source, int length) char *p; const char *q; int digits; - int width = 12; + int width; q = itoa (extract_int (source, length)); + switch (length) + { + case 1: + width = 4; + break; + + case 2: + width = 6; + break; + + case 4: + width = 11; + break; + + case 8: + width = 20; + break; + + default: + width = 0; + break; + } + digits = strlen (q); if(width < digits ) @@ -1039,6 +1060,7 @@ list_formatted_write (bt type, void *p, int len) { g.first_item = 0; char_flag = 0; + write_char (' '); } else { |