diff options
Diffstat (limited to 'libgfortran/io/transfer.c')
-rw-r--r-- | libgfortran/io/transfer.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index c8fd5571e5f..329d49828d4 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -1459,10 +1459,11 @@ us_write (st_parameter_dt *dtp) if (swrite (dtp->u.p.current_unit->s, &dummy, &nbytes) != 0) generate_error (&dtp->common, ERROR_OS, NULL); - /* For sequential unformatted, we write until we have more bytes - than can fit in the record markers. If disk space runs out first, - it will error on the write. */ - dtp->u.p.current_unit->recl = max_offset; + /* For sequential unformatted, if RECL= was not specified in the OPEN + we write until we have more bytes than can fit in the record markers. + If disk space runs out first, it will error on the write. */ + if (dtp->u.p.current_unit->flags.has_recl == 0) + dtp->u.p.current_unit->recl = max_offset; dtp->u.p.current_unit->bytes_left = dtp->u.p.current_unit->recl; } |