From: Jerry DeLisle Date: Fri, 18 Jan 2008 22:19:15 +0000 (+0000) Subject: transfer.c (formatted_transfer_scalar): Set max_pos to the greater of the current... X-Git-Tag: releases/gcc-4.3.0~542 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c540522baf73cc0c90baae3e66e1bfa0f51b049;p=thirdparty%2Fgcc.git transfer.c (formatted_transfer_scalar): Set max_pos to the greater of the current max_pos or the newly calculated position. 2008-01-18 Jerry DeLisle * io/transfer.c (formatted_transfer_scalar): Set max_pos to the greater of the current max_pos or the newly calculated position. From-SVN: r131640 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 3a81decfc8e4..25e239a6cffd 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2008-01-18 Jerry DeLisle + + * 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 * io/write.c (write_real): Increase default precision diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index 9b9e28ef3b7a..da3e3f2000c5 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -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) {