Преглед на файлове

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 години
родител
ревизия
9bf9c732f9
променени са 1 файла, в които са добавени 1 реда и са изтрити 1 реда
  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;