X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdio%2Ffwrite.c;h=7a567b2c55a94b30288444bd93f6fc48fff7e433;hb=868c96430093cd864512283b43071cb70b39b24e;hp=1b8641acadbfc5f9d9c34070ba6b424ee63dabb3;hpb=cea106fb8976d04b916953469439bc58fa111266;p=musl diff --git a/src/stdio/fwrite.c b/src/stdio/fwrite.c index 1b8641ac..7a567b2c 100644 --- a/src/stdio/fwrite.c +++ b/src/stdio/fwrite.c @@ -1,6 +1,7 @@ #include "stdio_impl.h" +#include -size_t __fwritex(const unsigned char *s, size_t l, FILE *f) +size_t __fwritex(const unsigned char *restrict s, size_t l, FILE *restrict f) { size_t i=0; @@ -12,8 +13,8 @@ size_t __fwritex(const unsigned char *s, size_t l, FILE *f) /* Match /^(.*\n|)/ */ for (i=l; i && s[i-1] != '\n'; i--); if (i) { - if (f->write(f, s, i) < i) - return i; + size_t n = f->write(f, s, i); + if (n < i) return n; s += i; l -= i; } @@ -24,10 +25,10 @@ size_t __fwritex(const unsigned char *s, size_t l, FILE *f) return l+i; } -size_t fwrite(const void *src, size_t size, size_t nmemb, FILE *f) +size_t fwrite(const void *restrict src, size_t size, size_t nmemb, FILE *restrict f) { size_t k, l = size*nmemb; - if (!l) return l; + if (!size) nmemb = 0; FLOCK(f); k = __fwritex(src, l, f); FUNLOCK(f);