OSDN Git Service

2010-02-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / io / transfer.c
index a110c65..e627a1c 100644 (file)
@@ -305,7 +305,20 @@ read_sf (st_parameter_dt *dtp, int * length, int no_error)
   if (lorig > *length && !dtp->u.p.sf_seen_eor && !seen_comma)
     {
       if (n > 0 || no_error)
-        dtp->u.p.at_eof = 1;
+        {
+         if (dtp->u.p.advance_status == ADVANCE_NO)
+           {
+             if (dtp->u.p.current_unit->pad_status == PAD_NO)
+               {
+                 hit_eof (dtp);
+                 return NULL;
+               }
+             else
+               dtp->u.p.eor_condition = 1;
+           }
+         else
+           dtp->u.p.at_eof = 1;
+       }
       else
         {
           hit_eof (dtp);