Apply the following patches:
*** src/libc/ansi/stdio/flsbuf.c~0 Fri Jun 16 08:59:52 1995
--- src/libc/ansi/stdio/flsbuf.c Thu Jun 13 10:34:00 1996
*************** _flsbuf(int c, FILE *f)
*** 24,30 ****
if ((f->_flag&_IOWRT)==0)
return EOF;
! tryagain:
if (f->_flag&_IOLBF)
{
base = f->_base;
--- 24,54 ----
if ((f->_flag&_IOWRT)==0)
return EOF;
! if ((base = f->_base) == NULL && (f->_flag & _IONBF) == 0)
! {
! size = _go32_info_block.size_of_transfer_buffer;
! if ((f->_base = base = malloc (size)) == NULL)
! {
! f->_flag |= _IONBF;
! f->_flag &= ~(_IOLBF | _IOFBF);
! }
! else
! {
! f->_flag |= _IOMYBUF;
! f->_bufsiz = size;
! if (f == stdout && isatty (fileno (stdout)))
! {
! f->_flag |= _IOLBF;
! f->_flag &= ~(_IONBF | _IOFBF);
! }
! else
! rn = n = 0;
!
! f->_ptr = base;
! f->_cnt = f->_bufsiz;
! }
! }
!
if (f->_flag&_IOLBF)
{
base = f->_base;
*************** _flsbuf(int c, FILE *f)
*** 51,76 ****
}
else
{
! if ((base=f->_base)==NULL)
! {
! size = _go32_info_block.size_of_transfer_buffer;
! if ((f->_base=base=malloc(size)) == NULL)
! {
! f->_flag |= _IONBF;
! goto tryagain;
! }
! f->_flag |= _IOMYBUF;
! f->_bufsiz = size;
! if (f==stdout && isatty(fileno(stdout)))
! {
! f->_flag |= _IOLBF;
! f->_ptr = base;
! goto tryagain;
! }
! rn = n = 0;
! }
! else
! rn = f->_ptr - base;
f->_ptr = base;
f->_cnt = f->_bufsiz;
}
--- 75,81 ----
}
else
{
! rn = f->_ptr - base;
f->_ptr = base;
f->_cnt = f->_bufsiz;
}
*** src/libc/ansi/stdio/filbuf.c~0 Fri Jun 23 09:49:38 1995
--- src/libc/ansi/stdio/filbuf.c Thu Jun 13 10:36:16 1996
*************** _filbuf(FILE *f)
*** 30,35 ****
--- 30,36 ----
size = _go32_info_block.size_of_transfer_buffer;
if ((f->_base = malloc(size)) == NULL) {
f->_flag |= _IONBF;
+ f->_flag &= ~(_IOFBF|_IOLBF);
goto tryagain;
}
f->_flag |= _IOMYBUF;