]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2007-03-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Mar 2007 01:25:27 +0000 (01:25 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Mar 2007 01:25:27 +0000 (01:25 +0000)
PR libgfortran/31051
* io/transfer.c (formatted_transfer_scalar): Adjust position for pending
spaces when in writing mode.  Clean up some formatting.

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

libgfortran/ChangeLog
libgfortran/io/transfer.c

index 1b3cff570c3358cc45d928f78f1b7e8df05fd448..d793b727b2605f8ccb575c42bd3609c59dbba62f 100644 (file)
@@ -1,3 +1,9 @@
+2007-03-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/31051
+       * io/transfer.c (formatted_transfer_scalar): Adjust position for pending
+       spaces when in writing mode.  Clean up some formatting.
+
 2007-03-14  Thomas Koenig  <Thomas.Koenig@online.de>
 
        PR libfortran/30690
index 42f824939427798c020efbc587514c88cc184557..2c1558e6b06a2ce30bcc6ec1d4368bd4a48e3532 100644 (file)
@@ -1155,7 +1155,7 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len,
        /* Format codes that don't transfer data.  */
        case FMT_X:
        case FMT_TR:
-         consume_data_flag = 0 ;
+         consume_data_flag = 0;
 
          pos = bytes_used + f->u.n + dtp->u.p.skips;
          dtp->u.p.skips = f->u.n + dtp->u.p.skips;
@@ -1171,6 +1171,7 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len,
              write_x (dtp, dtp->u.p.skips, dtp->u.p.pending_spaces);
              dtp->u.p.skips = dtp->u.p.pending_spaces = 0;
            }
+
          if (dtp->u.p.mode == READING)
            read_x (dtp, f->u.n);
 
@@ -1178,6 +1179,8 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len,
 
        case FMT_TL:
        case FMT_T:
+         consume_data_flag = 0;
+
          if (f->format == FMT_TL)
            {
 
@@ -1196,8 +1199,10 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len,
            }
          else /* FMT_T */
            {
-             consume_data_flag = 0;
-             pos = f->u.n - 1;
+             if (dtp->u.p.mode == READING)
+               pos = f->u.n - 1;
+             else
+               pos = f->u.n - dtp->u.p.pending_spaces - 1;
            }
 
          /* Standard 10.6.1.1: excessive left tabbing is reset to the