diff options
Diffstat (limited to 'libio')
-rw-r--r-- | libio/fileops.c | 6 | ||||
-rw-r--r-- | libio/libio.h | 18 |
2 files changed, 5 insertions, 19 deletions
diff --git a/libio/fileops.c b/libio/fileops.c index 66c2fc514b..82e521af6b 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -316,7 +316,7 @@ _IO_do_write (fp, data, to_do) fp->_cur_column = _IO_adjust_column (fp->_cur_column - 1, data, to_do) + 1; _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base); fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base; - fp->_IO_write_end = ((fp->_flags & (_IO_UNBUFFERED)) + fp->_IO_write_end = ((fp->_flags & (_IO_LINE_BUF+_IO_UNBUFFERED)) ? fp->_IO_buf_base : fp->_IO_buf_end); return count != to_do ? EOF : 0; } @@ -410,9 +410,9 @@ _IO_file_overflow (f, ch) f->_IO_write_end = f->_IO_buf_end; f->_IO_read_base = f->_IO_read_ptr = f->_IO_read_end; - if (f->_flags & (_IO_UNBUFFERED)) - f->_IO_write_end = f->_IO_write_ptr; f->_flags |= _IO_CURRENTLY_PUTTING; + if (f->_flags & (_IO_LINE_BUF+_IO_UNBUFFERED)) + f->_IO_write_end = f->_IO_write_ptr; } if (ch == EOF) return _IO_do_flush (f); diff --git a/libio/libio.h b/libio/libio.h index 410794f77c..a060b42395 100644 --- a/libio/libio.h +++ b/libio/libio.h @@ -286,24 +286,10 @@ extern int __overflow __P ((_IO_FILE *, int)); ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end \ && __underflow (_fp) == EOF ? EOF \ : *(unsigned char *) (_fp)->_IO_read_ptr) - -#ifdef __GNUC__ -# define _IO_putc_unlocked(_ch, _fp) \ - (__extension__ \ - ({ unsigned char _chl = (_ch); \ - (((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end \ - || (_chl == '\n' && ((_fp)->_flags & _IO_LINE_BUF))) \ - ? __overflow (_fp, (unsigned char) _chl) \ - : (unsigned char) (*(_fp)->_IO_write_ptr++ = _chl)); })) -#else -# define _IO_putc_unlocked(_ch, _fp) \ +#define _IO_putc_unlocked(_ch, _fp) \ (((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \ ? __overflow (_fp, (unsigned char) (_ch)) \ - : ((unsigned char) (*(_fp)->_IO_write_ptr = (_ch)) == '\n' \ - && ((_fp)->_flags & _IO_LINE_BUF) \ - ? __overflow (_fp, (unsigned char) *(_fp)->_IO_write_ptr) \ - : (unsigned char) (*(_fp)->_IO_write_ptr++))) -#endif + : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) #define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0) #define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0) |