Index: transfer.c =================================================================== RCS file: /cvsroot/gcc/gcc/libgfortran/io/transfer.c,v retrieving revision 1.32 diff -p -c -r1.32 transfer.c *** transfer.c 22 Feb 2005 03:26:25 -0000 1.32 --- transfer.c 7 Mar 2005 22:29:42 -0000 *************** read_sf (int *length) *** 150,156 **** else p = base = data; ! memset(base,'\0',*length); current_unit->bytes_left = options.default_recl; readlen = 1; --- 150,160 ---- else p = base = data; ! memset(base,' ',*length); ! ! /* If we have seen an eor previously, just return blanks. */ ! if (sf_seen_eor) ! return base; current_unit->bytes_left = options.default_recl; readlen = 1; *************** read_sf (int *length) *** 179,190 **** if (readlen < 1 || *q == '\n') { - /* ??? What is this for? */ - if (current_unit->unit_number == options.stdin_unit) - { - if (n <= 0) - continue; - } /* Unexpected end of line. */ if (current_unit->flags.pad == PAD_NO) { --- 183,188 ---- *************** next_record_r (int done) *** 1223,1229 **** length = 1; /* sf_read has already terminated input because of an '\n' */ if (sf_seen_eor) ! break; do { --- 1221,1230 ---- length = 1; /* sf_read has already terminated input because of an '\n' */ if (sf_seen_eor) ! { ! sf_seen_eor=0; ! break; ! } do {