2008-01-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Jan 2008 22:19:15 +0000 (22:19 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Jan 2008 22:19:15 +0000 (22:19 +0000)
* io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
of the current max_pos or the newly calculated position.

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

libgfortran/ChangeLog
libgfortran/io/transfer.c

index 3a81dec..25e239a 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater
+       of the current max_pos or the newly calculated position.
+
 2008-01-18  Tobias Burnus  <burnus@net-b.de>
 
        * io/write.c (write_real): Increase default precision
index 9b9e28e..da3e3f2 100644 (file)
@@ -948,9 +948,12 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len,
        {
          if (dtp->u.p.skips > 0)
            {
+             int tmp;
              write_x (dtp, dtp->u.p.skips, dtp->u.p.pending_spaces);
-             dtp->u.p.max_pos = (int)(dtp->u.p.current_unit->recl
-                                      - dtp->u.p.current_unit->bytes_left);
+             tmp = (int)(dtp->u.p.current_unit->recl
+                         - dtp->u.p.current_unit->bytes_left);
+             dtp->u.p.max_pos = 
+               dtp->u.p.max_pos > tmp ? dtp->u.p.max_pos : tmp;
            }
          if (dtp->u.p.skips < 0)
            {