diff options
Diffstat (limited to 'src/libstddjb/stralloc_catv.c')
-rw-r--r-- | src/libstddjb/stralloc_catv.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/libstddjb/stralloc_catv.c b/src/libstddjb/stralloc_catv.c index 684829c..a0c50aa 100644 --- a/src/libstddjb/stralloc_catv.c +++ b/src/libstddjb/stralloc_catv.c @@ -3,17 +3,14 @@ #include <sys/types.h> #include <string.h> #include <sys/uio.h> +#include <skalibs/siovec.h> #include <skalibs/stralloc.h> int stralloc_catv (stralloc *sa, struct iovec const *v, unsigned int n) { - register unsigned int i = 0 ; - { - size_t total = 0 ; - for (; i < n ; i++) total += v[i].iov_len ; - if (!stralloc_readyplus(sa, total)) return 0 ; - } - for (i = 0 ; i < n ; i++) + unsigned int i = 0 ; + if (!stralloc_readyplus(sa, siovec_len(v, n))) return 0 ; + for ( ; i < n ; i++) { memmove(sa->s + sa->len, v[i].iov_base, v[i].iov_len) ; sa->len += v[i].iov_len ; |