diff options
author | Francois-Xavier Coudert <coudert@clipper.ens.fr> | 2005-05-10 10:34:58 +0200 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2005-05-10 08:34:58 +0000 |
commit | 8809f6f94554707be1f58e35a61e2a3b7ced9554 (patch) | |
tree | af0abe5192ffbd06502c6cebf66a8794affacbd9 /libgfortran | |
parent | 9a9e266b0b78a36f39b9d1dcdadd52de84e68dac (diff) | |
download | gcc-8809f6f94554707be1f58e35a61e2a3b7ced9554.zip gcc-8809f6f94554707be1f58e35a61e2a3b7ced9554.tar.gz gcc-8809f6f94554707be1f58e35a61e2a3b7ced9554.tar.bz2 |
re PR libfortran/20788 (Loading libgfortran.so clobbers C redirection of stdin/stdout/stderr)
PR libfortran/20788
Missing entry from previous commit:
* io/unix.c (fd_to_stream): Add an avoid_mmap argument indicating
we don't we to mmap this stream. Use fd_open instead of mmap_open
in that case.
(open_external): Call fd_to_stream with avoid_mmap = 0.
(input_stream): Call fd_to_stream with avoid_mmap = 1.
(output_stream): Likewise.
(error_stream): Likewise.
Really committing:
* io/read.c (read_f): Accept 'e', 'E', 'd' and 'D' as first
non-blank characters of a real number.
From-SVN: r99508
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 11 | ||||
-rw-r--r-- | libgfortran/io/read.c | 6 |
2 files changed, 15 insertions, 2 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 3da84b6..496da2e 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,14 @@ +2005-05-10 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/20788 + * io/unix.c (fd_to_stream): Add an avoid_mmap argument indicating + we don't we to mmap this stream. Use fd_open instead of mmap_open + in that case. + (open_external): Call fd_to_stream with avoid_mmap = 0. + (input_stream): Call fd_to_stream with avoid_mmap = 1. + (output_stream): Likewise. + (error_stream): Likewise. + 2005-05-09 Mike Stump <mrs@apple.com> * configure: Regenerate. diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c index 2087ac5..1c8b3b0 100644 --- a/libgfortran/io/read.c +++ b/libgfortran/io/read.c @@ -536,9 +536,11 @@ read_f (fnode * f, char *dest, int length) exponent_sign = 1; - /* A digit (or a '.') is required at this point */ + /* A digit, a '.' or a exponent character ('e', 'E', 'd' or 'D') + is required at this point */ - if (!isdigit (*p) && *p != '.') + if (!isdigit (*p) && *p != '.' && *p != 'd' && *p != 'D' + && *p != 'e' && *p != 'E') goto bad_float; /* Remember the position of the first digit. */ |