19f0e98f58 
								
							 
						 
						
							
							
								
								environ.c: Include unistd.h.  
							
							... 
							
							
							
							* runtime/environ.c: Include unistd.h.
        * runtime/pause.c: Test HAVE_UNISTD_H.
        * runtime/stop.c: Same.
        * io/open.c: Same.
        * io/unix.c: Same.
        * io/read.c (si_max): Protect declaration of value.
From-SVN: r198603 
							
						 
						
							2013-05-04 17:23:11 -04:00  
				
					
						
							
							
								 
						
							
								c033f5ae32 
								
							 
						 
						
							
							
								
								PR 56981 Improve unbuffered performance on special files.  
							
							... 
							
							
							
							2013-04-29  Janne Blomqvist  <jb@gcc.gnu.org>
        PR fortran/56981
        * io/transfer.c (next_record_w_unf): First fix head marker, then
        write tail.
        (next_record): Call flush_if_unbuffered.
        * io/unix.c (struct unix_stream): Add field unbuffered.
        (flush_if_unbuffered): New function.
        (fd_to_stream): New argument.
        (open_external): Fix fd_to_stream call.
        (input_stream): Likewise.
        (output_stream): Likewise.
        (error_stream): Likewise.
        * io/unix.h (flush_if_unbuffered): New prototype.
From-SVN: r198390 
							
						 
						
							2013-04-29 11:42:00 +03:00  
				
					
						
							
							
								 
						
							
								68aab0e225 
								
							 
						 
						
							
							
								
								Fix regression when writing formatted sequential to a pipe.  
							
							... 
							
							
							
							2013-02-21  Janne Blomqvist  <jb@gcc.gnu.org>
	PR libfortran/30162
	* io/open.c (test_endfile): Call stell only if size != 0.
	* io/unix.c (raw_tell): Revert r194679.
	(raw_size): Return size field only for regular files, otherwise 0.
From-SVN: r196210 
							
						 
						
							2013-02-21 21:03:10 +02:00  
				
					
						
							
							
								 
						
							
								e3c063ceda 
								
							 
						 
						
							
							
								
								Update copyright years in libgfortran.  
							
							... 
							
							
							
							From-SVN: r195167 
							
						 
						
							2013-01-14 18:20:58 +00:00  
				
					
						
							
							
								 
						
							
								a0edd35cf6 
								
							 
						 
						
							
							
								
								re PR libfortran/30162 (Document when sequential I/O with named pipes works)  
							
							... 
							
							
							
							2012-12-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
	PR libfortran/30162
	* io/unix.c (raw_tell):  If the lseek is done on a
	non-seekable file, return 0.
From-SVN: r194679 
							
						 
						
							2012-12-21 20:50:48 +00:00  
				
					
						
							
							
								 
						
							
								a0ceafd19b 
								
							 
						 
						
							
							
								
								re PR fortran/54878 (libgfortran issues found by the Coverity scanner)  
							
							... 
							
							
							
							2012-10-10  Tobias Burnus  <burnus@net-b.de>
	PR fortran/54878
	* io/unix.c (tempfile_open): Set umask before calling mkstemp.
From-SVN: r192325 
							
						 
						
							2012-10-10 20:42:34 +02:00  
				
					
						
							
							
								 
						
							
								7c0de75353 
								
							 
						 
						
							
							
								
								re PR fortran/52724 (Internal read with character(kind=4) data)  
							
							... 
							
							
							
							2012-09-29  Thomas König  <tkoenig@gcc.gnu.org>
	PR fortran/52724
	* list_read.c (next_char):  Handle kind=4 characters.
	* unix.c (open_internal4):  Correct lenth of internal file.
2012-09-29  Thomas König  <tkoenig@gcc.gnu.org>
	PR fortran/52724
	* gfortran.dg/internal_readwrite_3.f90:  New test.
From-SVN: r191854 
							
						 
						
							2012-09-29 17:38:46 +00:00  
				
					
						
							
							
								 
						
							
								7ed26a671c 
								
							 
						 
						
							
							
								
								chmod.c (chmod_func): On MinGW, don't set is_dir  
							
							... 
							
							
							
							2012-06-01  Tobias Burnus  <burnus@net-b.de>
        * intrinsics/chmod.c (chmod_func): On MinGW, don't set is_dir
        * and
        fix octal-mode handling.
        * io/unit.c (get_internal_unit): Add cast.
        * io/unix.c (min): Undef "min" before defining it.
        * runtime/backtrace.c (show_backtrace): Move label into
        ifndef __MINGW__ block.
From-SVN: r188098 
							
						 
						
							2012-06-01 07:53:31 +02:00  
				
					
						
							
							
								 
						
							
								9daf64e704 
								
							 
						 
						
							
							
								
								revert: unix.c (tempfile_open): Pass mode to "open" for O_CREAT.  
							
							... 
							
							
							
							2012-05-31  Tobias Burnus  <burnus@net-b.de>
        Revert:
        2012-05-16  Tobias Burnus  <burnus@net-b.de>
        * io/unix.c (tempfile_open): Pass mode to "open" for O_CREAT.
From-SVN: r188048 
							
						 
						
							2012-05-31 08:10:18 +02:00  
				
					
						
							
							
								 
						
							
								e10f759e19 
								
							 
						 
						
							
							
								
								unix.c (tempfile_open): Pass mode to "open" for O_CREAT.  
							
							... 
							
							
							
							2012-05-16  Tobias Burnus  <burnus@net-b.de>
        * io/unix.c (tempfile_open): Pass mode to "open" for O_CREAT.
From-SVN: r187604 
							
						 
						
							2012-05-16 20:39:34 +02:00  
				
					
						
							
							
								 
						
							
								68ee9c0807 
								
							 
						 
						
							
							
								
								Fix handling of temporary files.  
							
							... 
							
							
							
							2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
        * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain
        algorithm for choosing temp directory.
2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
        * config.h.in: Regenerated.
        * configure: Regenerated.
        * configure.ac: Add checks for getegid and __secure_getenv.
        * io/unix.c (P_tmpdir): Fallback definition for macro.
        (tempfile_open): New function.
        (tempfile): Use secure_getenv, call tempfile_open to try each
        directory in turn.
        * libgfortran.h (DEFAULT_TMPDIR): Remove macro.
        (secure_getenv): New macro/prototype.
        * runtime/environ.c (secure_getenv): New function.
        (variable_table): Rename GFORTRAN_TMPDIR to TMPDIR.
        * runtime/main.c (find_addr2line): Use secure_getenv.
From-SVN: r187190 
							
						 
						
							2012-05-05 09:30:51 +03:00  
				
					
						
							
							
								 
						
							
								79617d7e2e 
								
							 
						 
						
							
							
								
								re PR libfortran/38199 (missed optimization: I/O performance)  
							
							... 
							
							
							
							2012-04-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
	PR libfortran/38199
	PR libfortran/50673
	* intrinsics/string_intriniscs_inc.c (string_len_trim):
	Remove prototypes for string_len_trim and move to...
	* libgfortran.h (string_len_trim): ... here and
	(string_len_trim_char4): ...here.
	* io/unit.c: For non-array internal arrays where we do reading,
	adjust the record length to the last non-blank character.
	* io/unix.c:  Fix typo.
From-SVN: r186466 
							
						 
						
							2012-04-15 11:52:44 +00:00  
				
					
						
							
							
								 
						
							
								1a0fd3d33a 
								
							 
						 
						
							
							
								
								Combined get_mem and internal_malloc_size.  
							
							... 
							
							
							
							2012-03-26  Janne Blomqvist  <jb@gcc.gnu.org>
	* runtime/memory.c (get_mem): Rename to xmalloc, check for zero
	size.
	(internal_malloc_size): Remove.
	* libgfortran.h (get_mem): Rename to xmalloc.
	(internal_malloc_size): Remove prototype.
	* Makefile.am (i_iall_c): Fix dependency.
	(i_iany_c): Likewise.
	(i_iparity_c): Likewise.
	(i_norm2_c): Likewise.
	(i_parity_c): Likewise.
	* Makefile.in: Regenerated.
	* m4/parity.m4: Fix typo in comment.
	* generated/all_l1.c: Regenerated.
	* generated/all_l16.c: Regenerated.
	* generated/all_l2.c: Regenerated.
	* generated/all_l4.c: Regenerated.
	* generated/all_l8.c: Regenerated.
	* generated/any_l1.c: Regenerated.
	* generated/any_l16.c: Regenerated.
	* generated/any_l2.c: Regenerated.
	* generated/any_l4.c: Regenerated.
	* generated/any_l8.c: Regenerated.
	* generated/bessel_r10.c: Regenerated.
	* generated/bessel_r16.c: Regenerated.
	* generated/bessel_r4.c: Regenerated.
	* generated/bessel_r8.c: Regenerated.
	* generated/count_16_l.c: Regenerated.
	* generated/count_1_l.c: Regenerated.
	* generated/count_2_l.c: Regenerated.
	* generated/count_4_l.c: Regenerated.
	* generated/count_8_l.c: Regenerated.
	* generated/cshift1_16.c: Regenerated.
	* generated/cshift1_4.c: Regenerated.
	* generated/cshift1_8.c: Regenerated.
	* generated/eoshift1_16.c: Regenerated.
	* generated/eoshift1_4.c: Regenerated.
	* generated/eoshift1_8.c: Regenerated.
	* generated/eoshift3_16.c: Regenerated.
	* generated/eoshift3_4.c: Regenerated.
	* generated/eoshift3_8.c: Regenerated.
	* generated/iall_i1.c: Regenerated.
	* generated/iall_i16.c: Regenerated.
	* generated/iall_i2.c: Regenerated.
	* generated/iall_i4.c: Regenerated.
	* generated/iall_i8.c: Regenerated.
	* generated/iany_i1.c: Regenerated.
	* generated/iany_i16.c: Regenerated.
	* generated/iany_i2.c: Regenerated.
	* generated/iany_i4.c: Regenerated.
	* generated/iany_i8.c: Regenerated.
	* generated/in_pack_c10.c: Regenerated.
	* generated/in_pack_c16.c: Regenerated.
	* generated/in_pack_c4.c: Regenerated.
	* generated/in_pack_c8.c: Regenerated.
	* generated/in_pack_i1.c: Regenerated.
	* generated/in_pack_i16.c: Regenerated.
	* generated/in_pack_i2.c: Regenerated.
	* generated/in_pack_i4.c: Regenerated.
	* generated/in_pack_i8.c: Regenerated.
	* generated/in_pack_r10.c: Regenerated.
	* generated/in_pack_r16.c: Regenerated.
	* generated/in_pack_r4.c: Regenerated.
	* generated/in_pack_r8.c: Regenerated.
	* generated/iparity_i1.c: Regenerated.
	* generated/iparity_i16.c: Regenerated.
	* generated/iparity_i2.c: Regenerated.
	* generated/iparity_i4.c: Regenerated.
	* generated/iparity_i8.c: Regenerated.
	* generated/matmul_c10.c: Regenerated.
	* generated/matmul_c16.c: Regenerated.
	* generated/matmul_c4.c: Regenerated.
	* generated/matmul_c8.c: Regenerated.
	* generated/matmul_i1.c: Regenerated.
	* generated/matmul_i16.c: Regenerated.
	* generated/matmul_i2.c: Regenerated.
	* generated/matmul_i4.c: Regenerated.
	* generated/matmul_i8.c: Regenerated.
	* generated/matmul_l16.c: Regenerated.
	* generated/matmul_l4.c: Regenerated.
	* generated/matmul_l8.c: Regenerated.
	* generated/matmul_r10.c: Regenerated.
	* generated/matmul_r16.c: Regenerated.
	* generated/matmul_r4.c: Regenerated.
	* generated/matmul_r8.c: Regenerated.
	* generated/maxloc0_16_i1.c: Regenerated.
	* generated/maxloc0_16_i16.c: Regenerated.
	* generated/maxloc0_16_i2.c: Regenerated.
	* generated/maxloc0_16_i4.c: Regenerated.
	* generated/maxloc0_16_i8.c: Regenerated.
	* generated/maxloc0_16_r10.c: Regenerated.
	* generated/maxloc0_16_r16.c: Regenerated.
	* generated/maxloc0_16_r4.c: Regenerated.
	* generated/maxloc0_16_r8.c: Regenerated.
	* generated/maxloc0_4_i1.c: Regenerated.
	* generated/maxloc0_4_i16.c: Regenerated.
	* generated/maxloc0_4_i2.c: Regenerated.
	* generated/maxloc0_4_i4.c: Regenerated.
	* generated/maxloc0_4_i8.c: Regenerated.
	* generated/maxloc0_4_r10.c: Regenerated.
	* generated/maxloc0_4_r16.c: Regenerated.
	* generated/maxloc0_4_r4.c: Regenerated.
	* generated/maxloc0_4_r8.c: Regenerated.
	* generated/maxloc0_8_i1.c: Regenerated.
	* generated/maxloc0_8_i16.c: Regenerated.
	* generated/maxloc0_8_i2.c: Regenerated.
	* generated/maxloc0_8_i4.c: Regenerated.
	* generated/maxloc0_8_i8.c: Regenerated.
	* generated/maxloc0_8_r10.c: Regenerated.
	* generated/maxloc0_8_r16.c: Regenerated.
	* generated/maxloc0_8_r4.c: Regenerated.
	* generated/maxloc0_8_r8.c: Regenerated.
	* generated/maxloc1_16_i1.c: Regenerated.
	* generated/maxloc1_16_i16.c: Regenerated.
	* generated/maxloc1_16_i2.c: Regenerated.
	* generated/maxloc1_16_i4.c: Regenerated.
	* generated/maxloc1_16_i8.c: Regenerated.
	* generated/maxloc1_16_r10.c: Regenerated.
	* generated/maxloc1_16_r16.c: Regenerated.
	* generated/maxloc1_16_r4.c: Regenerated.
	* generated/maxloc1_16_r8.c: Regenerated.
	* generated/maxloc1_4_i1.c: Regenerated.
	* generated/maxloc1_4_i16.c: Regenerated.
	* generated/maxloc1_4_i2.c: Regenerated.
	* generated/maxloc1_4_i4.c: Regenerated.
	* generated/maxloc1_4_i8.c: Regenerated.
	* generated/maxloc1_4_r10.c: Regenerated.
	* generated/maxloc1_4_r16.c: Regenerated.
	* generated/maxloc1_4_r4.c: Regenerated.
	* generated/maxloc1_4_r8.c: Regenerated.
	* generated/maxloc1_8_i1.c: Regenerated.
	* generated/maxloc1_8_i16.c: Regenerated.
	* generated/maxloc1_8_i2.c: Regenerated.
	* generated/maxloc1_8_i4.c: Regenerated.
	* generated/maxloc1_8_i8.c: Regenerated.
	* generated/maxloc1_8_r10.c: Regenerated.
	* generated/maxloc1_8_r16.c: Regenerated.
	* generated/maxloc1_8_r4.c: Regenerated.
	* generated/maxloc1_8_r8.c: Regenerated.
	* generated/maxval_i1.c: Regenerated.
	* generated/maxval_i16.c: Regenerated.
	* generated/maxval_i2.c: Regenerated.
	* generated/maxval_i4.c: Regenerated.
	* generated/maxval_i8.c: Regenerated.
	* generated/maxval_r10.c: Regenerated.
	* generated/maxval_r16.c: Regenerated.
	* generated/maxval_r4.c: Regenerated.
	* generated/maxval_r8.c: Regenerated.
	* generated/minloc0_16_i1.c: Regenerated.
	* generated/minloc0_16_i16.c: Regenerated.
	* generated/minloc0_16_i2.c: Regenerated.
	* generated/minloc0_16_i4.c: Regenerated.
	* generated/minloc0_16_i8.c: Regenerated.
	* generated/minloc0_16_r10.c: Regenerated.
	* generated/minloc0_16_r16.c: Regenerated.
	* generated/minloc0_16_r4.c: Regenerated.
	* generated/minloc0_16_r8.c: Regenerated.
	* generated/minloc0_4_i1.c: Regenerated.
	* generated/minloc0_4_i16.c: Regenerated.
	* generated/minloc0_4_i2.c: Regenerated.
	* generated/minloc0_4_i4.c: Regenerated.
	* generated/minloc0_4_i8.c: Regenerated.
	* generated/minloc0_4_r10.c: Regenerated.
	* generated/minloc0_4_r16.c: Regenerated.
	* generated/minloc0_4_r4.c: Regenerated.
	* generated/minloc0_4_r8.c: Regenerated.
	* generated/minloc0_8_i1.c: Regenerated.
	* generated/minloc0_8_i16.c: Regenerated.
	* generated/minloc0_8_i2.c: Regenerated.
	* generated/minloc0_8_i4.c: Regenerated.
	* generated/minloc0_8_i8.c: Regenerated.
	* generated/minloc0_8_r10.c: Regenerated.
	* generated/minloc0_8_r16.c: Regenerated.
	* generated/minloc0_8_r4.c: Regenerated.
	* generated/minloc0_8_r8.c: Regenerated.
	* generated/minloc1_16_i1.c: Regenerated.
	* generated/minloc1_16_i16.c: Regenerated.
	* generated/minloc1_16_i2.c: Regenerated.
	* generated/minloc1_16_i4.c: Regenerated.
	* generated/minloc1_16_i8.c: Regenerated.
	* generated/minloc1_16_r10.c: Regenerated.
	* generated/minloc1_16_r16.c: Regenerated.
	* generated/minloc1_16_r4.c: Regenerated.
	* generated/minloc1_16_r8.c: Regenerated.
	* generated/minloc1_4_i1.c: Regenerated.
	* generated/minloc1_4_i16.c: Regenerated.
	* generated/minloc1_4_i2.c: Regenerated.
	* generated/minloc1_4_i4.c: Regenerated.
	* generated/minloc1_4_i8.c: Regenerated.
	* generated/minloc1_4_r10.c: Regenerated.
	* generated/minloc1_4_r16.c: Regenerated.
	* generated/minloc1_4_r4.c: Regenerated.
	* generated/minloc1_4_r8.c: Regenerated.
	* generated/minloc1_8_i1.c: Regenerated.
	* generated/minloc1_8_i16.c: Regenerated.
	* generated/minloc1_8_i2.c: Regenerated.
	* generated/minloc1_8_i4.c: Regenerated.
	* generated/minloc1_8_i8.c: Regenerated.
	* generated/minloc1_8_r10.c: Regenerated.
	* generated/minloc1_8_r16.c: Regenerated.
	* generated/minloc1_8_r4.c: Regenerated.
	* generated/minloc1_8_r8.c: Regenerated.
	* generated/minval_i1.c: Regenerated.
	* generated/minval_i16.c: Regenerated.
	* generated/minval_i2.c: Regenerated.
	* generated/minval_i4.c: Regenerated.
	* generated/minval_i8.c: Regenerated.
	* generated/minval_r10.c: Regenerated.
	* generated/minval_r16.c: Regenerated.
	* generated/minval_r4.c: Regenerated.
	* generated/minval_r8.c: Regenerated.
	* generated/norm2_r10.c: Regenerated.
	* generated/norm2_r16.c: Regenerated.
	* generated/norm2_r4.c: Regenerated.
	* generated/norm2_r8.c: Regenerated.
	* generated/pack_c10.c: Regenerated.
	* generated/pack_c16.c: Regenerated.
	* generated/pack_c4.c: Regenerated.
	* generated/pack_c8.c: Regenerated.
	* generated/pack_i1.c: Regenerated.
	* generated/pack_i16.c: Regenerated.
	* generated/pack_i2.c: Regenerated.
	* generated/pack_i4.c: Regenerated.
	* generated/pack_i8.c: Regenerated.
	* generated/pack_r10.c: Regenerated.
	* generated/pack_r16.c: Regenerated.
	* generated/pack_r4.c: Regenerated.
	* generated/pack_r8.c: Regenerated.
	* generated/parity_l1.c: Regenerated.
	* generated/parity_l16.c: Regenerated.
	* generated/parity_l2.c: Regenerated.
	* generated/parity_l4.c: Regenerated.
	* generated/parity_l8.c: Regenerated.
	* generated/product_c10.c: Regenerated.
	* generated/product_c16.c: Regenerated.
	* generated/product_c4.c: Regenerated.
	* generated/product_c8.c: Regenerated.
	* generated/product_i1.c: Regenerated.
	* generated/product_i16.c: Regenerated.
	* generated/product_i2.c: Regenerated.
	* generated/product_i4.c: Regenerated.
	* generated/product_i8.c: Regenerated.
	* generated/product_r10.c: Regenerated.
	* generated/product_r16.c: Regenerated.
	* generated/product_r4.c: Regenerated.
	* generated/product_r8.c: Regenerated.
	* generated/reshape_c10.c: Regenerated.
	* generated/reshape_c16.c: Regenerated.
	* generated/reshape_c4.c: Regenerated.
	* generated/reshape_c8.c: Regenerated.
	* generated/reshape_i16.c: Regenerated.
	* generated/reshape_i4.c: Regenerated.
	* generated/reshape_i8.c: Regenerated.
	* generated/reshape_r10.c: Regenerated.
	* generated/reshape_r16.c: Regenerated.
	* generated/reshape_r4.c: Regenerated.
	* generated/reshape_r8.c: Regenerated.
	* generated/shape_i16.c: Regenerated.
	* generated/shape_i4.c: Regenerated.
	* generated/shape_i8.c: Regenerated.
	* generated/spread_c10.c: Regenerated.
	* generated/spread_c16.c: Regenerated.
	* generated/spread_c4.c: Regenerated.
	* generated/spread_c8.c: Regenerated.
	* generated/spread_i1.c: Regenerated.
	* generated/spread_i16.c: Regenerated.
	* generated/spread_i2.c: Regenerated.
	* generated/spread_i4.c: Regenerated.
	* generated/spread_i8.c: Regenerated.
	* generated/spread_r10.c: Regenerated.
	* generated/spread_r16.c: Regenerated.
	* generated/spread_r4.c: Regenerated.
	* generated/spread_r8.c: Regenerated.
	* generated/sum_c10.c: Regenerated.
	* generated/sum_c16.c: Regenerated.
	* generated/sum_c4.c: Regenerated.
	* generated/sum_c8.c: Regenerated.
	* generated/sum_i1.c: Regenerated.
	* generated/sum_i16.c: Regenerated.
	* generated/sum_i2.c: Regenerated.
	* generated/sum_i4.c: Regenerated.
	* generated/sum_i8.c: Regenerated.
	* generated/sum_r10.c: Regenerated.
	* generated/sum_r16.c: Regenerated.
	* generated/sum_r4.c: Regenerated.
	* generated/sum_r8.c: Regenerated.
	* generated/transpose_c10.c: Regenerated.
	* generated/transpose_c16.c: Regenerated.
	* generated/transpose_c4.c: Regenerated.
	* generated/transpose_c8.c: Regenerated.
	* generated/transpose_i16.c: Regenerated.
	* generated/transpose_i4.c: Regenerated.
	* generated/transpose_i8.c: Regenerated.
	* generated/transpose_r10.c: Regenerated.
	* generated/transpose_r16.c: Regenerated.
	* generated/transpose_r4.c: Regenerated.
	* generated/transpose_r8.c: Regenerated.
	* generated/unpack_c10.c: Regenerated.
	* generated/unpack_c16.c: Regenerated.
	* generated/unpack_c4.c: Regenerated.
	* generated/unpack_c8.c: Regenerated.
	* generated/unpack_i1.c: Regenerated.
	* generated/unpack_i16.c: Regenerated.
	* generated/unpack_i2.c: Regenerated.
	* generated/unpack_i4.c: Regenerated.
	* generated/unpack_i8.c: Regenerated.
	* generated/unpack_r10.c: Regenerated.
	* generated/unpack_r16.c: Regenerated.
	* generated/unpack_r4.c: Regenerated.
	* generated/unpack_r8.c: Regenerated.
	* intrinsics/cshift0.c: Use xmalloc.
	* intrinsics/ctime.c: Likewise.
	* intrinsics/date_and_time.c: Likewise.
	* intrinsics/eoshift0.c: Likewise.
	* intrinsics/eoshift2.c: Likewise.
	* intrinsics/getlog.c: Likewise.
	* intrinsics/pack_generic.c: Likewise.
	* intrinsics/reshape_generic.c: Likewise.
	* intrinsics/spread_generic.c: Likewise.
	* intrinsics/string_intrinsics_inc.c: Likewise.
	* intrinsics/transpose_generic.c: Likewise.
	* intrinsics/unpack_generic.c: Likewise.
	* io/fbuf.c: Likewise.
	* io/format.c: Likewise.
	* io/intrinsics.c: Likewise.
	* io/list_read.c: Likewise.
	* io/open.c: Likewise.
	* io/transfer.c: Likewise.
	* io/unit.c: Likewise.
	* io/unix.c: Likewise.
	* io/write.c: Likewise.
	* m4/bessel.m4: Likewise.
	* m4/cshift1.m4: Likewise.
	* m4/eoshift1.m4: Likewise.
	* m4/eoshift3.m4: Likewise.
	* m4/iforeach.m4: Likewise.
	* m4/ifunction.m4: Likewise.
	* m4/ifunction_logical.m4: Likewise.
	* m4/in_pack.m4: Likewise.
	* m4/matmul.m4: Likewise.
	* m4/matmull.m4: Likewise.
	* m4/pack.m4: Likewise.
	* m4/reshape.m4: Likewise.
	* m4/shape.m4: Likewise.
	* m4/spread.m4: Likewise.
	* m4/transpose.m4: Likewise.
	* m4/unpack.m4: Likewise.
	* runtime/convert_char.c: Likewise.
	* runtime/environ.c: Likewise.
	* runtime/in_pack_generic.c: Likewise.
From-SVN: r185806 
							
						 
						
							2012-03-26 18:16:05 +03:00  
				
					
						
							
							
								 
						
							
								f4471acbe3 
								
							 
						 
						
							
							
								
								Use calloc instead of malloc and memset.  
							
							... 
							
							
							
							2012-03-25  Janne Blomqvist  <jb@gcc.gnu.org>
	* runtime/memory.c (xcalloc): New function.
	* libgfortran.h (xcalloc): New prototype.
	* io/list_read.c (push_char): Use xcalloc instead of get_mem and
	memset.
	(l_push_char): Likewise.
	* io/unit.c (insert_unit): Likewise.
	(get_internal_unit): Likewise.
	* io/unix.c (open_internal): Likewise.
	(open_internal4): Likewise.
	(fd_to_stream): Likewise.
From-SVN: r185773 
							
						 
						
							2012-03-25 08:48:49 +03:00  
				
					
						
							
							
								 
						
							
								33959d1d3c 
								
							 
						 
						
							
							
								
								Share vtables instead of replicating them for each unit.  
							
							... 
							
							
							
							2012-03-16  Janne Blomqvist  <jb@gcc.gnu.org>
	* io/unix.h (struct stream): Rename to stream_vtable.
	(struct stream): New struct definition.
	(sread): Dereference vtable pointer.
	(swrite): Likewise.
	(sseek): Likewise.
	(struncate): Likewise.
	(sflush): Likewise.
	(sclose): Likewise.
	* io/unix.c (raw_vtable): New variable.
	(buf_vtable): Likewise.
	(mem_vtable): Likewise.
	(mem4_vtable): Likewise.
	(raw_init): Assign vtable pointer.
	(buf_init): Likewise.
	(open_internal): Likewise.
	(open_internal4): Likewise.
From-SVN: r185454 
							
						 
						
							2012-03-16 10:30:26 +02:00  
				
					
						
							
							
								 
						
							
								42dfafa935 
								
							 
						 
						
							
							
								
								PR 51646 Use POSIX mode flags in open() argument.  
							
							... 
							
							
							
							2011-12-22  Janne Blomqvist  <jb@gcc.gnu.org>
	Tobias Burnus  <burnus@net-b.de>
	PR libfortran/51646
	* acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Use POSIX mode
	flags, omit mode argument when flags argument does not have
	O_CREAT.
	* io/unix.c (tempfile): Use POSIX mode flags.
	* configure: Regenerate.
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r182638 
							
						 
						
							2011-12-22 22:44:32 +02:00  
				
					
						
							
							
								 
						
							
								ed10039e8b 
								
							 
						 
						
							
							
								
								PR 50016 Slow I/O on MingW due to _commit  
							
							... 
							
							
							
							frontend ChangeLog:
2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>
	PR libfortran/50016
	* gfortran.texi (Data consistency and durability): New section.
testsuite ChangeLog:
2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>
	PR libfortran/50016
	* gfortran.dg/inquire_size.f90: Don't flush the unit.
libgfortran ChangeLog:
2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>
	PR libfortran/50016
	* io/inquire.c (inquire_via_unit): Flush the unit and use ssize.
	* io/unix.c (buf_flush): Don't call _commit.
From-SVN: r181207 
							
						 
						
							2011-11-09 17:46:15 +02:00  
				
					
						
							
							
								 
						
							
								3469bd8660 
								
							 
						 
						
							
							
								
								Introduce a size member function to struct stream.  
							
							... 
							
							
							
							2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
	* io/unix.h (struct stream): Add size function pointer.
	(ssize): New inline function.
	(file_length): Remove prototype.
	* io/unix.c (raw_size): New function.
	(raw_init): Initialize st.size pointer.
	(buf_size): New function.
	(buf_init): Initialize st.size pointer.
	(open_internal): Likewise.
	(open_internal4): Likewise.
	(file_length): Remove function.
	* io/file_pos.c (st_rewind): Use ssize instead of file_length.
	* io/open.c (test_endfile): Likewise.
	* io/transfer.c (data_transfer_init): Likewise.
	(next_record_r): Likewise.
	(next_record_w): Likewise.
	* io/unit.c (update_position): Likewise.
From-SVN: r180702 
							
						 
						
							2011-10-31 16:52:26 +02:00  
				
					
						
							
							
								 
						
							
								7d5ee21935 
								
							 
						 
						
							
							
								
								Simplify handling of special files.  
							
							... 
							
							
							
							2011-10-31  Janne Blomqvist  <jb@gcc.gnu.org>
* io/file_pos.c (st_rewind): Handle regular and special files
identically.
* io/intrinsics.c (fseek_sub): Don't check whether we think the
file is seekable, just do what the caller says.
* io/transfer.c (skip_record): First try to seek, then fallback to
reading and throwing away what we read.
* io/unit.c (update_position): Don't check whether file is
seekable, just try to do what we're told.
(unit_truncate): Likewise.
* io/unix.c (struct unix_stream): Remove special_file flag.
(buf_flush): Remove code for handling unseekable files.
(buf_seek): Likewise.
(fd_to_stream): Use buffered IO only for regular files.
(file_length): Remove is_seekable() call.
(is_seekable): Remove function.
(is_special): Likewise.
* io/unix.h: Remove prototypes for is_seekable and is_special.
From-SVN: r180701 
							
						 
						
							2011-10-31 16:45:50 +02:00  
				
					
						
							
							
								 
						
							
								09ad57ec8f 
								
							 
						 
						
							
							
								
								Return error when trying to seek a non-seekable buffered file  
							
							... 
							
							
							
							From-SVN: r174947 
							
						 
						
							2011-06-11 13:52:18 +03:00  
				
					
						
							
							
								 
						
							
								5ea0705af7 
								
							 
						 
						
							
							
								
								Figure out whether a file is seekable with lseek()  
							
							... 
							
							
							
							From-SVN: r174946 
							
						 
						
							2011-06-11 13:19:49 +03:00  
				
					
						
							
							
								 
						
							
								1028b2bded 
								
							 
						 
						
							
							
								
								Error printing thread safety, remove GFORTRAN_USE_STDERR  
							
							... 
							
							
							
							From-SVN: r173749 
							
						 
						
							2011-05-14 10:55:51 +03:00  
				
					
						
							
							
								 
						
							
								1e03060224 
								
							 
						 
						
							
							
								
								Fix path handling  
							
							... 
							
							
							
							From-SVN: r173172 
							
						 
						
							2011-04-29 19:09:45 +03:00  
				
					
						
							
							
								 
						
							
								046957830e 
								
							 
						 
						
							
							
								
								remove useless if-before-free tests  
							
							... 
							
							
							
							Change "if (E) free (E);" to "free (E);" everywhere except in the
libgo/, intl/, zlib/ and classpath/ directories.
Also transform equivalent variants like
"if (E != NULL) free (E);" and allow an extra cast on the
argument to free.  Otherwise, the tested and freed "E"
expressions must be identical, modulo white space.
From-SVN: r172785 
							
						 
						
							2011-04-20 18:19:03 +00:00  
				
					
						
							
							
								 
						
							
								d30fe1c5cd 
								
							 
						 
						
							
							
								
								Replace sprintf with snprintf  
							
							... 
							
							
							
							From-SVN: r172590 
							
						 
						
							2011-04-16 20:43:03 +03:00  
				
					
						
							
							
								 
						
							
								99ebea0382 
								
							 
						 
						
							
							
								
								unix.c: Adapt stat DEFINEs since MinGW64 supports LFS.  
							
							... 
							
							
							
							2011-04-04  Tobias Burnus  <burnus@net-b.de>
        * unix.c: Adapt stat DEFINEs since MinGW64 supports LFS.
        (fallback_access, open_internal4, compare_file_filename,
        find_file, file_size, inquire_sequential, inquire_direct,
        inquire_formatted): Use "struct stat" instead of gfstat_t.
From-SVN: r171911 
							
						 
						
							2011-04-03 17:44:02 +02:00  
				
					
						
							
							
								 
						
							
								14bef49e53 
								
							 
						 
						
							
							
								
								re PR libfortran/47439 (Fun with scratch files on Windows  MKTEMP only allows for 26 files)  
							
							... 
							
							
							
							PR libfortran/47439
	* io/unix.c (tempfile): Work around poor mktemp() implementations.
	* gfortran.dg/scratch_1.f90: New test.
From-SVN: r171178 
							
						 
						
							2011-03-19 12:09:27 +00:00  
				
					
						
							
							
								 
						
							
								fe230fccd4 
								
							 
						 
						
							
							
								
								re PR libfortran/45165 (unix.c:fallback_access() leaks file descriptors)  
							
							... 
							
							
							
							PR libfortran/45165
	* unix.c (fallback_access): Fix file descriptor leaks.
From-SVN: r170517 
							
						 
						
							2011-02-26 15:21:45 +00:00  
				
					
						
							
							
								 
						
							
								6a0f6e7799 
								
							 
						 
						
							
							
								
								PR 47432 Use ttyname_r() if available  
							
							... 
							
							
							
							From-SVN: r169337 
							
						 
						
							2011-01-27 22:05:45 +02:00  
				
					
						
							
							
								 
						
							
								723553bdc1 
								
							 
						 
						
							
							
								
								PR 46267 strerror thread safety  
							
							... 
							
							
							
							From-SVN: r169110 
							
						 
						
							2011-01-22 00:42:17 +02:00  
				
					
						
							
							
								 
						
							
								9cd72574bc 
								
							 
						 
						
							
							
								
								PR47296 Segfault when running out of file descriptors  
							
							... 
							
							
							
							From-SVN: r168888 
							
						 
						
							2011-01-17 07:48:10 +02:00  
				
					
						
							
							
								 
						
							
								050d1a59d1 
								
							 
						 
						
							
							
								
								re PR fortran/47296 (I/O Segfault when running out of file descriptors)  
							
							... 
							
							
							
							2011-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	PR libgfortran/47296
	* io/unix.c (unpack_filename): Return non-zero if the filename passed
	in is NULL.
From-SVN: r168832 
							
						 
						
							2011-01-15 06:42:30 +00:00  
				
					
						
							
							
								 
						
							
								7debf73d34 
								
							 
						 
						
							
							
								
								Cache stat values, reduce syscalls  
							
							... 
							
							
							
							From-SVN: r166502 
							
						 
						
							2010-11-09 20:17:35 +02:00  
				
					
						
							
							
								 
						
							
								ce66b6f6ca 
								
							 
						 
						
							
							
								
								PR 44931 Move struct unix_stream to unix.c  
							
							... 
							
							
							
							From-SVN: r166325 
							
						 
						
							2010-11-04 21:29:28 +02:00  
				
					
						
							
							
								 
						
							
								332b9a5c15 
								
							 
						 
						
							
							
								
								Remove prot from unix_stream  
							
							... 
							
							
							
							From-SVN: r166284 
							
						 
						
							2010-11-04 01:07:11 +02:00  
				
					
						
							
							
								 
						
							
								576e00858c 
								
							 
						 
						
							
							
								
								Remove unused empty_internal_buffer function  
							
							... 
							
							
							
							From-SVN: r166276 
							
						 
						
							2010-11-03 22:49:31 +02:00  
				
					
						
							
							
								 
						
							
								47dad3ff97 
								
							 
						 
						
							
							
								
								Use access(2) instead of stat(2) to test file existence.  
							
							... 
							
							
							
							From-SVN: r162798 
							
						 
						
							2010-08-01 14:22:18 +03:00  
				
					
						
							
							
								 
						
							
								01b9977477 
								
							 
						 
						
							
							
								
								re PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin")  
							
							... 
							
							
							
							2010-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	PR libfortran/44931
	* io/inquire.c (inquire_via_unit): Use ttyname to return actual device
	file name for stdin, stdout, and stderr.  If ttyname does not succeed
	fall back to default names for these units. Include string.h to allow
	using strlen function.
	* unix.c: Remove typedef of unix_stream structure, move to unix.h.
	* unix.h: Add typedef of unix_stream structure so that it is
	accessible to inquire.c.
From-SVN: r162667 
							
						 
						
							2010-07-29 01:32:23 +00:00  
				
					
						
							
							
								 
						
							
								746e63273f 
								
							 
						 
						
							
							
								
								re PR fortran/44953 (FAIL: gfortran.dg/char4_iunit_1.f03  *  execution test)  
							
							... 
							
							
							
							2010-07-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	PR libfortran/44953
	* io/unix.c (mem_alloc_w4): Return gfc_char4_t instead of char type
	pointer. (mem_write4): Remove cast to gfc_char4_t.
	* io/transfer.c (write_block): Use a gfc_char4_t pointer.
	(memset4): New helper function. (next_record_w): Use new helper
	function rather than sset for internal units.  Don't attempt to pad
	with spaces if it is not needed.
	* io/unix.h: Update prototype for mem_alloc_w4.
	* io/write.c (memset4): Use gfc_char4_t pointer and chracter type.
	Don't use multiply by 4 to compute offset. (memcpy4): Likewise.
	(write_default_char4): Use a gfc_char4_t pointer and update memset4
	and memcpy calls. (write_a): Likewise. (write_l): Likewise.
	(write_boz): Likewise. (write_decimal): Likewise. (write_x): Likewise.
	(write_char): Add support for character(kind=4) internal units that
	was previously missed. (write_integer): Use a gfc_char4_t pointer and
	update memset4 and memcpy calls. (write_character): Likewise.
	(write_separator): Add support for character(kind=4) internal units
	that was previously missed.
	* write_float.def (output_float): Use a gfc_char4_t pointer and
	update memset4 and memcpy calls. (write_infnan): Likewise.
	(output_float_FMT_G_): Likewise.
From-SVN: r162304 
							
						 
						
							2010-07-19 13:11:54 +00:00  
				
					
						
							
							
								 
						
							
								c7421e06ca 
								
							 
						 
						
							
							
								
								re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4)  
							
							... 
							
							
							
							2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	PR libfortran/37077
	* io/read.c: Fix comment.
	* io/io.h (is_char4_unit): New macro.
	* io/unit.c (get_internal_unit): Call new function open_internal4.
	* io/unix.c (mem_alloc_r4): New function. (mem_alloc_w4): New function.
	(mem_read4): New function, temporary stub. (mem_write4): New function.
	(open_internal4): New function to set stream pointers to use the new
	mem functions.
	* io/transfer.c (write_block): Use new mem_alloc_w4 to access internal
	units of kind=4.
	* io/unix.h: Add prototypes for open_internal4, mem_alloc_w4, and
	mem_alloc_r4.
	* io/write.c (memset4): New helper function. (memcpy4): New helper
	function. (write_default_char4): Use new helper functions.
	(write_a): Likewise. (write_l): Likewise. (write_boz): Likewise.
	(write_decimal): Likewise. (write_x): Likewise.
	(write_integer): Likewise.
	* io/write_float.def (output_float): Add code blocks to handle internal
	unit kind=4 output utilizing gfc_char4_t pointers. (write_infnan): Use
	new helper functions. (OUTPUT_FLOAT_FMT_G): Update this macro likewise.
From-SVN: r162123 
							
						 
						
							2010-07-13 02:12:08 +00:00  
				
					
						
							
							
								 
						
							
								5bf935c3c8 
								
							 
						 
						
							
							
								
								re PR fortran/44698 (I/O: FLUSH does not actually flush the buffer?)  
							
							... 
							
							
							
							2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
	PR libfortran/44698
	* io/unix.c (flush_buf): Add _commit for WIN32.
From-SVN: r162060 
							
						 
						
							2010-07-11 20:43:25 +00:00  
				
					
						
							
							
								 
						
							
								bb408e876c 
								
							 
						 
						
							
							
								
								Remove free_mem  
							
							... 
							
							
							
							From-SVN: r159160 
							
						 
						
							2010-05-07 18:55:59 +03:00  
				
					
						
							
							
								 
						
							
								e7fc9c75d0 
								
							 
						 
						
							
							
								
								unix.c (raw_truncate): Explicit cast from integer-scal to pointer.  
							
							... 
							
							
							
							2010-04-30  Kai Tietz  <kai.tietz@onevision.com>
        PR/43844
        * io/unix.c (raw_truncate): Explicit cast from integer-scal
        to pointer.
        (empfile): Use for mingw GetTempPath and avoid double slash
        for path.
From-SVN: r158925 
							
						 
						
							2010-04-30 11:15:03 +02:00  
				
					
						
							
							
								 
						
							
								01d42eb543 
								
							 
						 
						
							
							
								
								unix.c (tempfile): Correct logic for mktemp case.  
							
							... 
							
							
							
							2010-04-24  Kai Tietz  <kai.tietz@onevision.com>
        PR/43844
        * io/unix.c (tempfile): Correct logic for mktemp case.
From-SVN: r158686 
							
						 
						
							2010-04-24 14:24:33 +02:00  
				
					
						
							
							
								 
						
							
								a1ff2ab8e4 
								
							 
						 
						
							
							
								
								transfer.c: Update copyright.  
							
							... 
							
							
							
							2010-04-01  Paul Thomas  <pault@gcc.gnu.org>
	* io/transfer.c : Update copyright.
	* io/unix.c : ditto
	* io/read.c : ditto
	* io/io.h : ditto
	* io/unix.h : ditto
	* io/inquire.c : ditto
	* io/format.c : ditto
	* io/list_read.c : ditto
	* runtime/error.c : ditto
	* libgfortran.h : ditto
	* intrinsics/date_and_time.c: ditto
	* intrinsics/args.c : ditto
From-SVN: r157924 
							
						 
						
							2010-04-01 18:22:00 +00:00  
				
					
						
							
							
								 
						
							
								10fa280a98 
								
							 
						 
						
							
							
								
								re PR libfortran/43551 (Buffered direct I/O reads wrong record)  
							
							... 
							
							
							
							2010-03-29  Tobias Burnus  <burnus@net-b.de>
        PR fortran/43551
        * io/unix.c (buf_write): Set physical_offset after lseek.
2010-03-29  Tobias Burnus  <burnus@net-b.de>
        PR fortran/43551
        * gfortran.dg/direct_io_12.f90: New test.
From-SVN: r157792 
							
						 
						
							2010-03-29 08:17:19 +02:00  
				
					
						
							
							
								 
						
							
								41c3cddc6b 
								
							 
						 
						
							
							
								
								re PR fortran/43409 (I/O: INQUIRE for SIZE does not work.)  
							
							... 
							
							
							
							2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	PR fortran/43409
	* ioparm.def: Change inquire size variable to type pointer to
	GFC_IO_INT type.
2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	PR fortran/43409
	* io/unix.h: Add prototype for new function to return file size.
	* io/unix.c (file_size): New function.
	* io/inquire.c (inquire_via_unit): Use new function.
	(inquire_via_filename): Use new function.
From-SVN: r157593 
							
						 
						
							2010-03-20 14:39:00 +00:00  
				
					
						
							
							
								 
						
							
								c9828e7878 
								
							 
						 
						
							
							
								
								PR libfortran/42420 Large file capable stat for MingW  
							
							... 
							
							
							
							From-SVN: r155593 
							
						 
						
							2010-01-03 20:09:37 +02:00  
				
					
						
							
							
								 
						
							
								a4384badd7 
								
							 
						 
						
							
							
								
								PR libfortran/40812 Large file support for MinGW  
							
							... 
							
							
							
							From-SVN: r154984 
							
						 
						
							2009-12-04 18:28:44 +02:00  
				
					
						
							
							
								 
						
							
								509f7fdc0e 
								
							 
						 
						
							
							
								
								unix.c (find_file): Add variable id conditionally for mingw targets.  
							
							... 
							
							
							
							2009-11-30  Kai Tietz  <Kai.Tietz@onevision.com>
        * io/unix.c (find_file): Add variable id conditionally for
        mingw targets.
From-SVN: r154806 
							
						 
						
							2009-11-30 15:12:33 +01:00