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);