From 7c5d119f9a60630d3c873d4f102de65590f58001 Mon Sep 17 00:00:00 2001 From: leitner Date: Mon, 15 Sep 2014 21:00:54 +0000 Subject: [PATCH] fix buffer_get --- CHANGES | 1 + buffer/buffer_get.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 677edd7..931eefd 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,7 @@ switch io_fds from array to newly implemented (hopefully thread-safe) iarray switch epoll from level triggering to edge triggering introduce io_eagain_read and io_eagain_write (discontinue using io_eagain plz) + fix buffer_get 0.29: save 8 bytes in taia.h for 64-bit systems diff --git a/buffer/buffer_get.c b/buffer/buffer_get.c index be64f53..7bcbb4e 100644 --- a/buffer/buffer_get.c +++ b/buffer/buffer_get.c @@ -7,7 +7,8 @@ ssize_t buffer_get(buffer* b,char* x,size_t len) { done=0; if ((ssize_t)len < 0) len=(ssize_t)(((size_t)-1)>>1); while (len) { - if ((blen=buffer_feed(b))<=0) return blen; + if ((blen=buffer_feed(b))<0) return blen; + if (blen==0) break; if (blen>=(ssize_t)len) blen=(ssize_t)len; byte_copy(x,(size_t)blen,b->x+b->p);