OSDN Git Service

Simplify handling of special files.
authorjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Oct 2011 14:45:50 +0000 (14:45 +0000)
committerjb <jb@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Oct 2011 14:45:50 +0000 (14:45 +0000)
commitcc65b133497323602614f80780db62a8dd7e22c8
tree041a48d3c01978c5d828f9408cf2ffcb1db07571
parente54aa8a4b85c7f1e8ea0dd233a65c1daa5c816cb
Simplify handling of special files.

2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>

* io/file_pos.c (st_rewind): Handle regular and special files
identically.
* io/intrinsics.c (fseek_sub): Don't check whether we think the
file is seekable, just do what the caller says.
* io/transfer.c (skip_record): First try to seek, then fallback to
reading and throwing away what we read.
* io/unit.c (update_position): Don't check whether file is
seekable, just try to do what we're told.
(unit_truncate): Likewise.
* io/unix.c (struct unix_stream): Remove special_file flag.
(buf_flush): Remove code for handling unseekable files.
(buf_seek): Likewise.
(fd_to_stream): Use buffered IO only for regular files.
(file_length): Remove is_seekable() call.
(is_seekable): Remove function.
(is_special): Likewise.
* io/unix.h: Remove prototypes for is_seekable and is_special.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180701 138bc75d-0d04-0410-961f-82ee72b054a4
libgfortran/ChangeLog
libgfortran/io/file_pos.c
libgfortran/io/intrinsics.c
libgfortran/io/transfer.c
libgfortran/io/unit.c
libgfortran/io/unix.c
libgfortran/io/unix.h