From 0b8deb2a15d4785fb8bd6cd67a913ecd4d8e02c8 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 7 Mar 2014 09:46:17 -0800 Subject: Add C string helper to membuffer interface I don't know why I didn't do this from the beginning. We often build up a membuffer and then want to use it as a C string. You could do it by hand by adding the zero byte at the end, but that's just annoying. Signed-off-by: Linus Torvalds Signed-off-by: Dirk Hohndel --- membuffer.c | 7 +++++++ membuffer.h | 1 + 2 files changed, 8 insertions(+) diff --git a/membuffer.c b/membuffer.c index fd179244b..8ba23ebe2 100644 --- a/membuffer.c +++ b/membuffer.c @@ -55,6 +55,13 @@ static void make_room(struct membuffer *b, unsigned int size) } } +const char *mb_cstring(struct membuffer *b) +{ + make_room(b, 1); + b->buffer[b->len] = 0; + return b->buffer; +} + void put_bytes(struct membuffer *b, const char *str, int len) { make_room(b, len); diff --git a/membuffer.h b/membuffer.h index 2a6ddc7f5..3a7f633be 100644 --- a/membuffer.h +++ b/membuffer.h @@ -23,6 +23,7 @@ extern void flush_buffer(struct membuffer *, FILE *); extern void put_bytes(struct membuffer *, const char *, int); extern void put_string(struct membuffer *, const char *); extern void strip_mb(struct membuffer *); +extern const char *mb_cstring(struct membuffer *); extern __printf(2, 0) void put_vformat(struct membuffer *, const char *, va_list); extern __printf(2, 3) void put_format(struct membuffer *, const char *fmt, ...); -- cgit v1.2.3-70-g09d2