Index: fusl/src/stdio/fread.c |
diff --git a/fusl/src/stdio/fread.c b/fusl/src/stdio/fread.c |
index aef75f7376f700dd584bf346ab1b7b17717ab097..533d7ccba66f7bb0c341a3b465ee6318bf446212 100644 |
--- a/fusl/src/stdio/fread.c |
+++ b/fusl/src/stdio/fread.c |
@@ -1,38 +1,41 @@ |
#include "stdio_impl.h" |
#include <string.h> |
-#define MIN(a,b) ((a)<(b) ? (a) : (b)) |
- |
-size_t fread(void *restrict destv, size_t size, size_t nmemb, FILE *restrict f) |
-{ |
- unsigned char *dest = destv; |
- size_t len = size*nmemb, l = len, k; |
- if (!size) nmemb = 0; |
- |
- FLOCK(f); |
- |
- f->mode |= f->mode-1; |
- |
- if (f->rend - f->rpos > 0) { |
- /* First exhaust the buffer. */ |
- k = MIN(f->rend - f->rpos, l); |
- memcpy(dest, f->rpos, k); |
- f->rpos += k; |
- dest += k; |
- l -= k; |
- } |
- |
- /* Read the remainder directly */ |
- for (; l; l-=k, dest+=k) { |
- k = __toread(f) ? 0 : f->read(f, dest, l); |
- if (k+1<=1) { |
- FUNLOCK(f); |
- return (len-l)/size; |
- } |
- } |
- |
- FUNLOCK(f); |
- return nmemb; |
+#define MIN(a, b) ((a) < (b) ? (a) : (b)) |
+ |
+size_t fread(void* restrict destv, |
+ size_t size, |
+ size_t nmemb, |
+ FILE* restrict f) { |
+ unsigned char* dest = destv; |
+ size_t len = size * nmemb, l = len, k; |
+ if (!size) |
+ nmemb = 0; |
+ |
+ FLOCK(f); |
+ |
+ f->mode |= f->mode - 1; |
+ |
+ if (f->rend - f->rpos > 0) { |
+ /* First exhaust the buffer. */ |
+ k = MIN(f->rend - f->rpos, l); |
+ memcpy(dest, f->rpos, k); |
+ f->rpos += k; |
+ dest += k; |
+ l -= k; |
+ } |
+ |
+ /* Read the remainder directly */ |
+ for (; l; l -= k, dest += k) { |
+ k = __toread(f) ? 0 : f->read(f, dest, l); |
+ if (k + 1 <= 1) { |
+ FUNLOCK(f); |
+ return (len - l) / size; |
+ } |
+ } |
+ |
+ FUNLOCK(f); |
+ return nmemb; |
} |
weak_alias(fread, fread_unlocked); |