Pārlūkot izejas kodu

remove obfuscated flags bit-twiddling logic in __stdio_read

replace with simple conditional that doesn't rely on assumption that
cnt is either 0 or -1.
Rich Felker 7 gadi atpakaļ
vecāks
revīzija
9bf9c732f9
1 mainītis faili ar 1 papildinājumiem un 1 dzēšanām
  1. 1 1
      src/stdio/__stdio_read.c

+ 1 - 1
src/stdio/__stdio_read.c

@@ -11,7 +11,7 @@ size_t __stdio_read(FILE *f, unsigned char *buf, size_t len)
 
 	cnt = syscall(SYS_readv, f->fd, iov, 2);
 	if (cnt <= 0) {
-		f->flags |= F_EOF ^ ((F_ERR^F_EOF) & cnt);
+		f->flags |= cnt ? F_ERR : F_EOF;
 		return cnt;
 	}
 	if (cnt <= iov[0].iov_len) return cnt;