diff options
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 5 | ||||
-rw-r--r-- | libgfortran/io/unix.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index cca3bbe9080..34072892ff3 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2005-10-12 Janne Blomqvist <jblomqvi@cc.hut.fi> + + * io/unix.c: Remove parts of patch of 2005/10/07 that cause + input from the terminal to hang. + 2005-10-11 Steven G. Kargl <kargls@comcast.net> PR libgfortran/24313 diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c index 6fe861c573c..de018af1f03 100644 --- a/libgfortran/io/unix.c +++ b/libgfortran/io/unix.c @@ -440,7 +440,7 @@ static char * fd_alloc_r_at (unix_stream * s, int *len, gfc_offset where) { gfc_offset m; - size_t n; + int n; if (where == -1) where = s->logical_offset; @@ -462,8 +462,8 @@ fd_alloc_r_at (unix_stream * s, int *len, gfc_offset where) if (s->physical_offset != m && lseek (s->fd, m, SEEK_SET) < 0) return NULL; - n = s->len - s->active; - if (do_read (s, s->buffer + s->active, &n) != 0) + n = read (s->fd, s->buffer + s->active, s->len - s->active); + if (n < 0) return NULL; s->physical_offset = where + n; |