diff options
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 6 | ||||
-rw-r--r-- | libgfortran/io/list_read.c | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index aba6b2e..aaa37a4 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2007-09-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libfortran/33400 + * io/list_read.c (next_char): Interpret encountering the end of file the + first time as an end of line. Subsequent reads give EOF error. + 2007-09-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/33421 diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index b97130b..0eb1845 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -232,8 +232,14 @@ next_char (st_parameter_dt *dtp) return '\0'; } if (length == 0) - longjmp (*dtp->u.p.eof_jump, 1); - c = *p; + { + if (dtp->u.p.current_unit->endfile == AT_ENDFILE) + longjmp (*dtp->u.p.eof_jump, 1); + dtp->u.p.current_unit->endfile = AT_ENDFILE; + c = '\n'; + } + else + c = *p; } done: dtp->u.p.at_eol = (c == '\n' || c == '\r'); |