From d464f8e99ef16ef8eb26f285e54a2d5ce6024c64 Mon Sep 17 00:00:00 2001 From: Janne Blomqvist Date: Sun, 16 May 2004 17:07:58 +0300 Subject: [PATCH] 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 From-SVN: r81914 --- libgfortran/ChangeLog | 7 +++++++ libgfortran/io/write.c | 30 ++++++++++++++++++++++++++---- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 27531d8..05609b4 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,4 +1,11 @@ 2004-05-16 Janne Blomqvist + Paul Brook + + * io/write.c (write_logical): Don't print extra blank. + (write_integer): Base field width on kind. + (list_formatted_write): Output initial blank. + +2004-05-16 Janne Blomqvist * io/io.h (flush): Add prototype. * io/transfer.c (finalize_transfer): Flush partial records. diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 05dbd9b..8e5a320 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 { -- 2.7.4