diff options
author | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-28 02:03:21 +0000 |
---|---|---|
committer | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-28 02:03:21 +0000 |
commit | f4bfed80dc6b67b5cb6075f8911824bcf2d2473b (patch) | |
tree | 90a3e99020a35c7bc8694c854024d883c5c67a81 /libgfortran/io/transfer.c | |
parent | 187386f3c3bb1259b23d25bbbc98210120eff7cc (diff) | |
download | gcc-f4bfed80dc6b67b5cb6075f8911824bcf2d2473b.tar.gz |
2007-04-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/31532
* io/file_pos.c (st_backspace): Set flags.position for end of file
condition and use new function update_position.
(st_endfile): Use new function update_position.
* io/io.h: Add prototype for new function.
* io/inquire.c (inquire_via_unit): If not direct access, set NEXTREC
to zero.
* io/unit.c (update_position): New function to update position info
used by inquire.
* io/transfer.c (next_record): Fix typo and use new function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124252 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/io/transfer.c')
-rw-r--r-- | libgfortran/io/transfer.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index f9f6657b737..ac5f11b40ff 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -2546,8 +2546,10 @@ next_record (st_parameter_dt *dtp, int done) if (!is_stream_io (dtp)) { - /* keep position up to date for INQUIRE */ - dtp->u.p.current_unit->flags.position = POSITION_ASIS; + /* Keep position up to date for INQUIRE */ + if (done) + update_position (dtp->u.p.current_unit); + dtp->u.p.current_unit->current_record = 0; if (dtp->u.p.current_unit->flags.access == ACCESS_DIRECT) { |