X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1eeed1150149b63d6e49e033697454bc12b533b9..7909fc6dec8d1499c5b9fa331a810a77b08c84a2:/lunaix-os/kernel/ds/rbuffer.c diff --git a/lunaix-os/kernel/ds/rbuffer.c b/lunaix-os/kernel/ds/rbuffer.c index eea75d6..82d1402 100644 --- a/lunaix-os/kernel/ds/rbuffer.c +++ b/lunaix-os/kernel/ds/rbuffer.c @@ -61,7 +61,7 @@ rbuffer_puts(struct rbuffer* rb, char* buf, size_t len) } int -rbuffer_gets(struct rbuffer* rb, char* buf, size_t len) +rbuffer_gets_opt(struct rbuffer* rb, char* buf, size_t len, bool consumed) { if (!len || !rb->len) return 0; @@ -79,7 +79,9 @@ rbuffer_gets(struct rbuffer* rb, char* buf, size_t len) memcpy(&buf[-nlen], &rb->buffer[ptr_start], nlen); } - rb->len -= nlen; + if (consumed) { + rb->len -= nlen; + } return nlen; }