From 6b7f1410367052f2a0e7c65ebb7c2a80e2667e33 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Wei=C3=9Fschuh?= Date: Thu, 13 Jun 2024 11:39:34 +0200 Subject: [PATCH] lib/buffer: introduce ul_buffer_get_string() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Some users need a zero-byte-terminated string. As the buffer internally already maintains a zero-termination, add a helper function that exposes this to users. Signed-off-by: Thomas Weißschuh (cherry picked from commit 49e177d627f80640aac81522090cbdc151204c2d) --- include/buffer.h | 1 + lib/buffer.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/buffer.h b/include/buffer.h index b122da4eb4..1ccbc971b1 100644 --- a/include/buffer.h +++ b/include/buffer.h @@ -35,6 +35,7 @@ int ul_buffer_append_ntimes(struct ul_buffer *buf, size_t n, const char *str); int ul_buffer_set_data(struct ul_buffer *buf, const char *data, size_t sz); char *ul_buffer_get_data(struct ul_buffer *buf, size_t *sz, size_t *width); +char *ul_buffer_get_string(struct ul_buffer *buf, size_t *sz, size_t *width); char *ul_buffer_get_safe_data(struct ul_buffer *buf, size_t *sz, size_t *width, const char *safechars); size_t ul_buffer_get_bufsiz(struct ul_buffer *buf); diff --git a/lib/buffer.c b/lib/buffer.c index cc863fa3af..a3a19c26ee 100644 --- a/lib/buffer.c +++ b/lib/buffer.c @@ -188,6 +188,19 @@ char *ul_buffer_get_data(struct ul_buffer *buf, size_t *sz, size_t *width) return buf->begin; } +char *ul_buffer_get_string(struct ul_buffer *buf, size_t *sz, size_t *width) +{ + char *ret; + + ret = ul_buffer_get_data(buf, sz, width); + + /* data in buffer is already zero-terminated */ + if (sz) + *sz = *sz + 1; + + return ret; +} + /* size of allocated area (!= size of stored data */ size_t ul_buffer_get_bufsiz(struct ul_buffer *buf) { -- 2.47.3