Browse Source

fix getc - the classic error of trying to store EOF+0-255 in a char type..

Rich Felker 14 years ago
parent
commit
05b694028e
1 changed files with 3 additions and 3 deletions
  1. 3 3
      src/stdio/__uflow.c

+ 3 - 3
src/stdio/__uflow.c

@@ -5,7 +5,7 @@
 
 int __uflow(FILE *f)
 {
-	unsigned char c = EOF;
-	if (f->rend || !__toread(f)) f->read(f, &c, 1);
-	return c;
+	unsigned char c;
+	if ((f->rend || !__toread(f)) && f->read(f, &c, 1)==1) return c;
+	return EOF;
 }