mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-10 12:35:00 +08:00
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
This commit is contained in:
parent
50bc8a4d6e
commit
b0c6db58ad
@ -1,3 +1,10 @@
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user