OSDN Git Service

2010-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Sep 2010 00:53:15 +0000 (00:53 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Sep 2010 00:53:15 +0000 (00:53 +0000)
PR libfortran/45710
* io/write.c (namelist_write_newline): Pad character array internal
unit records with spaces.

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

libgfortran/ChangeLog
libgfortran/io/write.c

index 8411513..c462a2a 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 e811c47..fabbaff 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. */