gcc/libgfortran/io
Janne Blomqvist 15877a88eb Part 1 of PR 25561.
2008-05-15  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/25561
	* Makefile.am: Add fbuf.c to gfor_io_src.
	* Makefile.in: Regenerate.
	* io/io.h (read_block): Remove.
	(struct stream): Remove alloc_r_at function pointer.
	(salloc_r): Remove.
	(salloc_r_at): Remove.
	(salloc_w_at): Remove.
	(salloc_w): Remove offset argument.
	(struct fbuf): New struct for format buffer.
	(struct gfc_unit): Add fbuf.
	(read_block_form): New prototype.
	(fbuf_init): Likewise.
	(fbuf_destroy): Likewise.
	(fbuf_reset): Likewise.
	(fbuf_alloc): Likewise.
	(fbuf_flush): Likewise.
	(fbuf_seek): Likewise.
	* io/file_pos.c (formatted_backspace): Change to use sread.
	(unformatted_backspace): Likewise.
	(st_backspace): Flush format buffer.
	(st_rewind): Likewise.
	* io/list_read.c (next_char): Likewise.
	(nml_query): Tidying, flush format buffer.
	* io/open.c (new_unit): Init format buffer.
	* io/read.c (read_l): Change to use read_block_form.
	(read_a): Likewise.
	(read_decimal): Likewise.
	(read_radix): Likewise.
	(read_f): Likewise.
	(read_x): Empty reads also for stream I/O.
	* io/transfer.c (read_sf): Change to use sread.
	(read_block): Rename to read_block_form, change prototype, use sread.
	(read_block_direct): Don't seek stream files.
	(write_block): Change to use fbuf if external file, don't seek stream
	files.
	(write_buf): Don't seek stream files.
	(formatted_transfer_scalar): Use fbuf for external files.
	(us_read): Change to use sread.
	(pre_position): Do nothing for stream I/O.
	(data_transfer_init): Flush fbuf when switching from write to read, if
	POS is specified, seek stream file to correct offset.
	(skip_record): Change to use sread.
	(min_off): New function.
	(next_record_r): Change to use sread.
	(next_record_w): Change to use sset/sseek, flush fbuf.
	(finalize_transfer): Flush fbuf.
	* io/unit.c (init_units): Init fbuf for stdout, stderr.
	(close_unit_1): Destroy fbuf.
	(finish_last_advance_record): Flush fbuf, no need to seek.
	* io/unix.c (fd_alloc_r_at): Remove unused where argument.
	(fd_alloc_w_at): Likewise.
	(fd_read): Remove third argument to fd_alloc_r_at.
	(fd_write): Remove third argument to fd_alloc_w_at.
	(fd_sset): Likewise.
	(fd_open): Don't set alloc_r_at.
	(mem_alloc_r_at): Remove unused where argument.
	(mem_alloc_w_at): Likewise.
	(mem_read): Don't incorrectly return previous errno, remove unused
	third argument to alloc function.
	(mem_write): Likewise.
	(mem_set): Likewise.
	(open_internal): Don't set alloc_r_at pointer.
	* io/fbuf.c: New file.

From-SVN: r135373
2008-05-15 18:53:34 +03:00
..
close.c re PR fortran/31675 (Fortran front-end and libgfortran should have a common header file) 2007-09-03 16:44:15 +00:00
file_pos.c Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
format.c PR fortran/25829 28655 2008-04-05 22:18:03 +00:00
inquire.c PR fortran/25829 28655 2008-04-07 22:05:52 +00:00
intrinsics.c minloc1.m4: Update copyright year and ajust headers order. 2007-08-31 14:01:34 +00:00
io.h Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
list_read.c Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
lock.c minloc1.m4: Update copyright year and ajust headers order. 2007-08-31 14:01:34 +00:00
open.c Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
read.c Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
size_from_kind.c minloc1.m4: Update copyright year and ajust headers order. 2007-08-31 14:01:34 +00:00
transfer.c Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
unit.c Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
unix.c Part 1 of PR 25561. 2008-05-15 18:53:34 +03:00
write_float.def PR fortran/25829 28655 2008-04-05 22:18:03 +00:00
write.c PR fortran/25829 28655 2008-04-07 22:05:52 +00:00