diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2010-11-04 21:29:28 +0200 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2010-11-04 21:29:28 +0200 |
commit | ce66b6f6cad2c071176d903486fdaea96796b31a (patch) | |
tree | f69d8dda9791d56ef2baca9e9c0a428cd528ab0b | |
parent | 269c80f2a6b982cdc8364e1d2885c7ce5e8d6b9a (diff) | |
download | gcc-ce66b6f6cad2c071176d903486fdaea96796b31a.zip gcc-ce66b6f6cad2c071176d903486fdaea96796b31a.tar.gz gcc-ce66b6f6cad2c071176d903486fdaea96796b31a.tar.bz2 |
PR 44931 Move struct unix_stream to unix.c
From-SVN: r166325
-rw-r--r-- | libgfortran/ChangeLog | 9 | ||||
-rw-r--r-- | libgfortran/io/inquire.c | 2 | ||||
-rw-r--r-- | libgfortran/io/unix.c | 31 | ||||
-rw-r--r-- | libgfortran/io/unix.h | 21 |
4 files changed, 38 insertions, 25 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 2e134c7..f7fe9e1 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,5 +1,14 @@ 2010-11-04 Janne Blomqvist <jb@gcc.gnu.org> + PR libfortran/44931 + * io/inquire.c (inquire_via_unit): Use stream_ttyname() instead of + calling ttyname() directly. + * io/unix.h (unix_stream): Move struct to unix.c. + * io/unix.c: Move struct unix_stream here. + (stream_ttyname): Don't mark the argument as unused if it is used. + +2010-11-04 Janne Blomqvist <jb@gcc.gnu.org> + * io/unix.h (struct unix_stream): Remove prot member. * io/unix.c: Remove PROT_READ and PROT_WRITE constants. (fd_to_stream): Remove prot from argument list, don't set prot. diff --git a/libgfortran/io/inquire.c b/libgfortran/io/inquire.c index c4994ed..24481cc 100644 --- a/libgfortran/io/inquire.c +++ b/libgfortran/io/inquire.c @@ -73,7 +73,7 @@ inquire_via_unit (st_parameter_inquire *iqp, gfc_unit * u) || u->unit_number == options.stdout_unit || u->unit_number == options.stderr_unit) { - char * tmp = ttyname (((unix_stream *) u->s)->fd); + char * tmp = stream_ttyname (u->s); if (tmp != NULL) { int tmplen = strlen (tmp); diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c index d3def10..e55af18 100644 --- a/libgfortran/io/unix.c +++ b/libgfortran/io/unix.c @@ -167,6 +167,27 @@ fallback_access (const char *path, int mode) static const int BUFFER_SIZE = 8192; +typedef struct +{ + stream st; + + gfc_offset buffer_offset; /* File offset of the start of the buffer */ + gfc_offset physical_offset; /* Current physical file offset */ + gfc_offset logical_offset; /* Current logical file offset */ + gfc_offset file_length; /* Length of the file, -1 if not seekable. */ + + char *buffer; /* Pointer to the buffer. */ + int fd; /* The POSIX file descriptor. */ + + int active; /* Length of valid bytes in the buffer */ + + int ndirty; /* Dirty bytes starting at buffer_offset */ + + int special_file; /* =1 if the fd refers to a special file */ +} +unix_stream; + + /* fix_fd()-- Given a file descriptor, make sure it is not one of the * standard descriptors, returning a non-standard descriptor. If the * user specifies that system errors should go to standard output, @@ -1786,14 +1807,18 @@ stream_isatty (stream *s) } char * -stream_ttyname (stream *s __attribute__ ((unused))) -{ #ifdef HAVE_TTYNAME +stream_ttyname (stream *s) +{ return ttyname (((unix_stream *) s)->fd); +} #else +stream_ttyname (stream *s __attribute__ ((unused))) +{ return NULL; -#endif } +#endif + /* How files are stored: This is an operating-system specific issue, diff --git a/libgfortran/io/unix.h b/libgfortran/io/unix.h index 563b77e..0e147aa 100644 --- a/libgfortran/io/unix.h +++ b/libgfortran/io/unix.h @@ -42,27 +42,6 @@ struct stream }; -typedef struct -{ - stream st; - - gfc_offset buffer_offset; /* File offset of the start of the buffer */ - gfc_offset physical_offset; /* Current physical file offset */ - gfc_offset logical_offset; /* Current logical file offset */ - gfc_offset file_length; /* Length of the file, -1 if not seekable. */ - - char *buffer; /* Pointer to the buffer. */ - int fd; /* The POSIX file descriptor. */ - - int active; /* Length of valid bytes in the buffer */ - - int ndirty; /* Dirty bytes starting at buffer_offset */ - - int special_file; /* =1 if the fd refers to a special file */ -} -unix_stream; - - /* Inline functions for doing file I/O given a stream. */ static inline ssize_t sread (stream * s, void * buf, ssize_t nbyte) |