* io/write.c (write_logical): Don't print extra blank.
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 May 2004 14:07:58 +0000 (14:07 +0000)
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 May 2004 14:07:58 +0000 (14:07 +0000)
(write_integer): Base field width on kind.
(list_formatted_write): Output initial blank.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81914 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/io/write.c

index 27531d8..05609b4 100644 (file)
@@ -1,4 +1,11 @@
 2004-05-16  Janne Blomqvist  <jblomqvi@cc.hut.fi>
+       Paul Brook  <paul@codesourcery.com>
+
+       * 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  <jblomqvi@cc.hut.fi>
 
        * io/io.h (flush): Add prototype.
        * io/transfer.c (finalize_transfer): Flush partial records.
index 05dbd9b..8e5a320 100644 (file)
@@ -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
     {