From eb6cbd249f4465b01f428057bf6ab61f5f0c07e3 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 1 Dec 2012 13:00:08 -0500 Subject: [BZ #12724] libio: revert partial POSIX 2008 fclose support In BZ #12724, partial support for POSIX 2008 fclose behavior was added. Since it isn't entirely conforming to the spec, some applications are known to be breaking in this intermediate state. So revert the partial support until we can get things fully implemented. This reverts commit fcabc0f8b185f9e0a9289720be5ede6c39b3bf21. Signed-off-by: Mike Frysinger --- libio/fileops.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'libio/fileops.c') diff --git a/libio/fileops.c b/libio/fileops.c index fb6ac17..09d689d 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -155,21 +155,13 @@ int _IO_new_file_close_it (fp) _IO_FILE *fp; { + int write_status; if (!_IO_file_is_open (fp)) return EOF; - int write_status; - if (_IO_in_put_mode (fp)) + if ((fp->_flags & _IO_NO_WRITES) == 0 + && (fp->_flags & _IO_CURRENTLY_PUTTING) != 0) write_status = _IO_do_flush (fp); - else if (fp->_offset != _IO_pos_BAD && fp->_IO_read_base != NULL - && !_IO_in_backup (fp)) - { - off64_t o = _IO_SEEKOFF (fp, 0, _IO_seek_cur, 0); - if (o == WEOF) - write_status = EOF; - else - write_status = _IO_SYSSEEK (fp, o, SEEK_SET) < 0 ? EOF : 0; - } else write_status = 0; -- cgit v1.1