From 7a39508120192d2651aba5387054d3bbcd15a96c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sun, 3 Apr 2016 15:12:44 +0200 Subject: buffer: add buffer_content0 utility function --- buffer.c | 6 ++++++ buffer.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/buffer.c b/buffer.c index c0c626f..d8b01f7 100644 --- a/buffer.c +++ b/buffer.c @@ -103,3 +103,9 @@ size_t buffer_length(Buffer *buf) { const char *buffer_content(Buffer *buf) { return buf->data; } + +const char *buffer_content0(Buffer *buf) { + if (buf->len == 0 || (buf->data[buf->len-1] != '\0' && !buffer_append(buf, "\0", 1))) + return ""; + return buf->data; +} diff --git a/buffer.h b/buffer.h index cef75f3..1c9f684 100644 --- a/buffer.h +++ b/buffer.h @@ -42,6 +42,9 @@ bool buffer_prepend0(Buffer*, const char *data); size_t buffer_length0(Buffer*); /* return length of a buffer including possible NUL byte */ size_t buffer_length(Buffer*); +/* pointer to buffer data, guaranteed to return a NUL terminated + * string even if buffer is empty */ +const char *buffer_content0(Buffer*); /* pointer to buffer data, might be NULL if empty, might not be NUL terminated */ const char *buffer_content(Buffer*); -- cgit v1.2.3