From 153a646667ff5ae7578a6027938524db91c40821 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Thu, 5 Feb 2015 23:56:14 +0000 Subject: - Add siovec_trunc - Add openwritevnclose - replace buffer_read/write with fd_readsv/writesv - add localtmn_from_tain_g - refactor cdb_make - rewrite buffer_getvall and buffer_putvall, with a bugfix --- src/libstddjb/buffer_getall.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/libstddjb/buffer_getall.c') diff --git a/src/libstddjb/buffer_getall.c b/src/libstddjb/buffer_getall.c index 4f1490b..dc0e115 100644 --- a/src/libstddjb/buffer_getall.c +++ b/src/libstddjb/buffer_getall.c @@ -7,12 +7,13 @@ int buffer_getall (buffer *b, char *buf, unsigned int len, unsigned int *w) { if (*w > len) return (errno = EINVAL, -1) ; - *w += buffer_getnofill(b, buf + *w, len - *w) ; - while (*w < len) + for (;;) { - register int r = sanitize_read(buffer_fill(b)) ; - if (r <= 0) return r ; + register int r ; *w += buffer_getnofill(b, buf + *w, len - *w) ; + if (*w >= len) break ; + r = sanitize_read(buffer_fill(b)) ; + if (r <= 0) return r ; } return 1 ; } -- cgit v1.3.1