Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2004-11-17 20:02:10 +0300
committerChristopher Faylor <me@cgf.cx>2004-11-17 20:02:10 +0300
commit1f8f7e2d54364bd2993892adffb5c6435f53167d (patch)
tree9108d37b5d229330424d105b1d162f6a151b6212 /newlib/libc/stdio/refill.c
parentcd1ab47e384368a0ec5904601cb552ab85689ab6 (diff)
* libc/stdio/refill.c (__srefill): Try again after EOF on Cygwin. Clear EOF
flag if successful.
Diffstat (limited to 'newlib/libc/stdio/refill.c')
-rw-r--r--newlib/libc/stdio/refill.c8
1 files changed, 8 insertions, 0 deletions
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;