]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/45710 (Adjust format and padding for WRITE of NAMELIST group to interna...
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 23 Sep 2010 00:53:15 +0000 (00:53 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 23 Sep 2010 00:53:15 +0000 (00:53 +0000)
2010-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/45710
* io/write.c (namelist_write_newline): Pad character array internal
unit records with spaces.

From-SVN: r164543

libgfortran/ChangeLog
libgfortran/io/write.c

index 8411513a819aeb80fc1f0f96011d38902d7f1bc1..c462a2a5421c7c088176c03187b7c9c4721f9192 100644 (file)
@@ -1,3 +1,9 @@
+2010-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libfortran/45710
+       * io/write.c (namelist_write_newline): Pad character array internal
+       unit records with spaces.
+
 2010-09-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libfortran/45723
index e811c47baefb8dbf24e36a0a971a69707213a1c8..fabbaffc9e94a82ee6743408a1efb2f42a678175 100644 (file)
@@ -1630,6 +1630,20 @@ namelist_write_newline (st_parameter_dt *dtp)
     {
       gfc_offset record;
       int finished;
+      char *p;
+      int length = dtp->u.p.current_unit->bytes_left;
+
+      p = write_block (dtp, length);
+      if (p == NULL)
+       return;
+
+      if (unlikely (is_char4_unit (dtp)))
+       {
+         gfc_char4_t *p4 = (gfc_char4_t *) p;
+         memset4 (p4, ' ', length);
+       }
+      else
+       memset (p, ' ', length);
 
       /* Now that the current record has been padded out,
         determine where the next record in the array is. */