re PR libfortran/25631 (tl format specifier not working correctly)

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.

From-SVN: r109858
This commit is contained in:
Jerry DeLisle 2006-01-18 00:52:21 +00:00
parent d190d56b7e
commit 272c35bd98
2 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,9 @@
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

View File

@ -868,7 +868,21 @@ formatted_transfer_scalar (st_parameter_dt *dtp, bt type, void *p, int len,
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;