re PR fortran/33400 (Formatted read fails if line ends without line break)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Fri, 28 Sep 2007 16:55:07 +0000 (16:55 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Fri, 28 Sep 2007 16:55:07 +0000 (16:55 +0000)
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.

From-SVN: r128868

libgfortran/ChangeLog
libgfortran/io/list_read.c

index aba6b2e..aaa37a4 100644 (file)
@@ -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
index b97130b..0eb1845 100644 (file)
@@ -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');