gcc/libgfortran/io
Thomas Koenig 07b3bbf200 re PR libfortran/29568 (implement unformatted files with subrecords (Intel style))
2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* gfortran.dg/convert_implied_open.f90:  Change to
	new default record length.
	* gfortran.dg/unf_short_record_1.f90:  Adapt to
	new error message.
	* gfortran.dg/unformatted_subrecords_1.f90:  New test.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* gfortran.h (gfc_option_t):  Add max_subrecord_length.
	(top level): Define MAX_SUBRECORD_LENGTH.
	* lang.opt:  Add option -fmax-subrecord-length=.
	* trans-decl.c:  Add new function set_max_subrecord_length.
	(gfc_generate_function_code): If we are within the main
	program and max_subrecord_length has been set, call
	set_max_subrecord_length.
	* options.c (gfc_init_options):  Add defaults for
	max_subrecord_lenght, convert and record_marker.
	(gfc_handle_option):  Add handling for
	-fmax_subrecord_length.
	* invoke.texi:  Document the new default for
	-frecord-marker=<n>.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* libgfortran/libgfortran.h (compile_options_t):  Add
	record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
	* runtime/compile_options.c (set_record_marker):  Change
	default to four-byte record marker.
	(set_max_subrecord_length):  New function.
	* runtime/error.c (translate_error):  Change error message
	for short record on unformatted read.
	* io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
	and continued.
	* io/file_pos.c (unformatted_backspace):  Change default of record
	marker size to four bytes.  Loop over subrecords.
	* io/open.c:  Default recl is max_offset.  If
	compile_options.max_subrecord_length has been set, set set
	u->recl_subrecord to its value, to the maximum value otherwise.
	* io/transfer.c (top level):  Add prototypes for us_read, us_write,
	next_record_r_unf and next_record_w_unf.
	(read_block_direct):  Separate codepaths for unformatted direct
	and unformatted sequential.  If a recl has been set by the
	user, use the number of bytes left for the record if it is smaller
	than the read request.  Loop over subrecords.  Set an error if the
	user has set a recl and the read was short.
	(write_buf):  Separate codepaths for unformatted direct and
	unformatted sequential. If a recl has been set by the
	user, use the number of bytes left for the record if it is smaller
	than the read request.  Loop over subrecords.  Set an error if the
	user has set a recl and the read was short.
	(us_read):  Add parameter continued (to indicate that bytes_left
	should not be intialized).  Change default of record marker size
	to four bytes. Use subrecord.  If the subrecord length is smaller than
	zero, this indicates a continuation.
	(us_write):  Add parameter continued (to indicate that the continued
	flag should be set).  Use subrecord.
	(pre_position):  Use 0 for continued on us_write and us_read calls.
	(skip_record):  New function.
	(next_record_r_unf):  New function.
	(next_record_r):  Use next_record_r_unf.
	(write_us_marker):  Default size for record markers is four bytes.
	(next_record_w_unf):  New function.
	(next_record_w):  Use next_record_w_unf.

From-SVN: r119412
2006-12-01 21:04:38 +00:00
..
close.c re PR fortran/28335 (flush() / write() statement on closed units - error?) 2006-07-31 00:15:08 +00:00
file_pos.c re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
format.c
inquire.c re PR fortran/29053 (Consecutive STREAM I/O file positions mixed up) 2006-09-15 13:16:15 +00:00
io.h re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
list_read.c re PR fortran/29563 (Internal read loses data.) 2006-10-26 07:17:21 +00:00
lock.c
open.c re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
read.c 2006-11-08 Steven G. Kargl <kargl@gcc.gnu.org> 2006-11-09 03:57:44 +00:00
size_from_kind.c
transfer.c re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
unit.c re PR fortran/29563 (Internal read loses data.) 2006-10-26 04:35:45 +00:00
unix.c re PR libfortran/27964 (Wrong line ends on windows (XP)) 2006-09-23 01:56:55 +00:00
unix.h
write.c re PR fortran/29277 (Formated stream output: Translate "\n" / achar(10) into "\r\n" on some platforms) 2006-10-18 23:13:33 +00:00