From f20ea432e67d3b0223129b418613c74b3beae450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sun, 13 Sep 2015 17:36:28 +0200 Subject: buffer: add buffer_append0 to append NUL terminated strings --- buffer.c | 6 ++++++ buffer.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/buffer.c b/buffer.c index 1a3c7db..05e8177 100644 --- a/buffer.c +++ b/buffer.c @@ -52,3 +52,9 @@ bool buffer_append(Buffer *buf, const void *data, size_t len) { buf->len += len; return true; } + +bool buffer_append0(Buffer *buf, const char *data) { + if (buf->len > 0 && buf->data[buf->len-1] == '\0') + buf->len--; + return buffer_append(buf, data, strlen(data)) && buffer_append(buf, "\0", 1); +} diff --git a/buffer.h b/buffer.h index ef5a537..23a92ba 100644 --- a/buffer.h +++ b/buffer.h @@ -23,5 +23,7 @@ void buffer_truncate(Buffer*); bool buffer_put(Buffer*, const void *data, size_t len); /* append futher content to the end of the buffer data */ bool buffer_append(Buffer*, const void *data, size_t len); +/* append NUl-terminated data */ +bool buffer_append0(Buffer*, const char *data); #endif -- cgit v1.2.3