From 1f8f7e2d54364bd2993892adffb5c6435f53167d Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 17 Nov 2004 17:02:10 +0000 Subject: [PATCH] * libc/stdio/refill.c (__srefill): Try again after EOF on Cygwin. Clear EOF flag if successful. --- newlib/ChangeLog | 5 +++++ newlib/libc/stdio/refill.c | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 9983e6ba6..8b8cf4d4c 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2004-11-17 Christopher Faylor + + * libc/stdio/refill.c (__srefill): Try again after EOF on Cygwin. Clear + EOF flag if successful. + 2004-10-28 Christopher Faylor * libc/include/sys/signal.h: Move include to bottom of file diff --git a/newlib/libc/stdio/refill.c b/newlib/libc/stdio/refill.c index 74573e8fd..3f0b1a566 100644 --- a/newlib/libc/stdio/refill.c +++ b/newlib/libc/stdio/refill.c @@ -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; -- 2.36.1