PR libgfortran/25631
* io/transfer.c (formatted_transfer_scalar): Adjust pending_spaces and
skips so that TL works correctly when no bytes_used yet.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109858
138bc75d-0d04-0410-961f-
82ee72b054a4
+2006-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/25631
+ * io/transfer.c (formatted_transfer_scalar): Adjust pending_spaces and
+ skips so that TL works correctly when no bytes_used yet.
+
2006-01-16 Roger Sayle <roger@eyesopen.com>
* configure.ac (CFLAGS): Update to include -std=gnu99 so that
case FMT_TL:
case FMT_T:
if (f->format == FMT_TL)
- pos = bytes_used - f->u.n;
+ {
+
+ /* Handle the special case when no bytes have been used yet.
+ Cannot go below zero. */
+ if (bytes_used == 0)
+ {
+ dtp->u.p.pending_spaces -= f->u.n;
+ dtp->u.p.pending_spaces = dtp->u.p.pending_spaces < 0 ? 0
+ : dtp->u.p.pending_spaces;
+ dtp->u.p.skips -= f->u.n;
+ dtp->u.p.skips = dtp->u.p.skips < 0 ? 0 : dtp->u.p.skips;
+ }
+
+ pos = bytes_used - f->u.n;
+ }
else /* FMT_T */
{
consume_data_flag = 0;