From 75f21a11e173f38e7ead2eff119314482b803a65 Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Wed, 25 Jul 2001 22:31:25 +0000 Subject: Ok... the fix wasn't quite so straightforward. Hopefully this will do it. --- libc/stdio/stdio.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libc/stdio/stdio.c') diff --git a/libc/stdio/stdio.c b/libc/stdio/stdio.c index d6c950fd0..34ee50347 100644 --- a/libc/stdio/stdio.c +++ b/libc/stdio/stdio.c @@ -420,6 +420,9 @@ off_t _uClibc_fread(unsigned char *buf, off_t bytes, FILE *fp) fp->bufpos = fp->bufread = fp->bufstart; /* Reset pointers. */ fp->bufread += _uClibc_fread(fp->bufstart, fp->bufend - fp->bufstart, fp); + if (fp->bufread - fp->bufstart >= bytes) { /* If we read all */ + fp->mode |= ~__MODE_EOF; /* that was requested, make sure */ + } /* EOF flag is clear. */ goto FROM_BUF; } -- cgit v1.2.3