+<<<<<<< .mine
+2006-01-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/25598
+ * io/file_pos.c (unformatted_backspace): Assure the new file position
+ to seek is not less than zero.
+ (st_backspace): Set unit bytes_left to zero.
+ * io/transfer.c (next_record_r): Fix line lengths, no functional change.
+ a null value (default). Revert patch of 25419 on 2005-12-28.
+
+2005-12-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+=======
2006-01-02 Paolo Bonzini <bonzini@gnu.org>
+>>>>>>> .r109401
PR target/25259
* configure.ac: Use GCC_HEADER_STDINT.
else
reverse_memcpy (&m, p, sizeof (gfc_offset));
- new = file_position (u->s) - m - 2*length;
+ if ((new = file_position (u->s) - m - 2*length) < 0)
+ new = 0;
+
if (sseek (u->s, new) == FAILURE)
goto io_error;
u->endfile = NO_ENDFILE;
u->current_record = 0;
+ u->bytes_left = 0;
}
done:
switch (current_mode (dtp))
{
case UNFORMATTED_SEQUENTIAL:
- dtp->u.p.current_unit->bytes_left += sizeof (gfc_offset); /* Skip over tail */
+ /* Skip over tail */
+ dtp->u.p.current_unit->bytes_left += sizeof (gfc_offset);
+
/* Fall through... */
case FORMATTED_DIRECT:
if (is_seekable (dtp->u.p.current_unit->s))
{
- new = file_position (dtp->u.p.current_unit->s) + dtp->u.p.current_unit->bytes_left;
+ new = file_position (dtp->u.p.current_unit->s)
+ + dtp->u.p.current_unit->bytes_left;
/* Direct access files do not generate END conditions,
only I/O errors. */