Commit b0c6db58 by Jerry DeLisle

io.h (unit_flags): Add new flag has_recl.

2006-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/io.h (unit_flags): Add new flag has_recl.
	* io.open.c (new_unit): Set flag if RECL= was specified.
	* io/transfer.c (us_write): If flag set, leave recl as initialized by
	new_unit.

From-SVN: r119087
parent 50bc8a4d
2006-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* io/io.h (unit_flags): Add new flag has_recl.
* io.open.c (new_unit): Set flag if RECL= was specified.
* io/transfer.c (us_write): If flag set, leave recl as initialized by
new_unit.
2006-11-16 Francois-Xavier Coudert <coudert@clipper.ens.fr>
* io/open.c (new_unit): Format %d expects an int variable.
......
......@@ -470,6 +470,7 @@ typedef struct
unit_status status;
unit_pad pad;
unit_convert convert;
int has_recl;
}
unit_flags;
......
......@@ -406,9 +406,13 @@ new_unit (st_parameter_open *opp, gfc_unit *u, unit_flags * flags)
/* Unspecified recl ends up with a processor dependent value. */
if ((opp->common.flags & IOPARM_OPEN_HAS_RECL_IN))
u->recl = opp->recl_in;
{
u->flags.has_recl = 1;
u->recl = opp->recl_in;
}
else
{
u->flags.has_recl = 0;
switch (compile_options.record_marker)
{
case 0:
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment