* libc/stdio/refill.c (__srefill): Try again after EOF on Cygwin. Clear EOF

flag if successful.
This commit is contained in:
Christopher Faylor 2004-11-17 17:02:10 +00:00
parent cd1ab47e38
commit 1f8f7e2d54
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2004-11-17 Christopher Faylor <cgf@timesys.com>
* libc/stdio/refill.c (__srefill): Try again after EOF on Cygwin. Clear
EOF flag if successful.
2004-10-28 Christopher Faylor <cgf@timesys.com>
* libc/include/sys/signal.h: Move <signal.h> include to bottom of file

View File

@ -45,9 +45,11 @@ _DEFUN(__srefill, (fp),
fp->_r = 0; /* largely a convenience for callers */
#ifndef __CYGWIN__
/* SysV does not make this test; take it out for compatibility */
if (fp->_flags & __SEOF)
return EOF;
#endif
/* if not already reading, have to be reading and writing */
if ((fp->_flags & __SRD) == 0)
@ -98,7 +100,13 @@ _DEFUN(__srefill, (fp),
fp->_p = fp->_bf._base;
fp->_r = (*fp->_read) (fp->_cookie, (char *) fp->_p, fp->_bf._size);
fp->_flags &= ~__SMOD; /* buffer contents are again pristine */
#ifndef __CYGWIN__
if (fp->_r <= 0)
#else
if (fp->_r > 0)
fp->_flags &= ~__SEOF;
else
#endif
{
if (fp->_r == 0)
fp->_flags |= __SEOF;