From eb80f690981fe849c3bfc2477f1d3350b6e35f6d Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 26 Feb 2016 17:02:11 +0100 Subject: [PATCH] utils: add nm_utils_strbuf_init() macro --- src/NetworkManagerUtils.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/NetworkManagerUtils.h b/src/NetworkManagerUtils.h index 87c898771c..8ca50736df 100644 --- a/src/NetworkManagerUtils.h +++ b/src/NetworkManagerUtils.h @@ -301,6 +301,19 @@ fcn_name (lookup_type val) \ /*****************************************************************************/ +static inline void +_nm_utils_strbuf_init (char *buf, gsize len, char **p_buf_ptr, gsize *p_buf_len) +{ + NM_SET_OUT (p_buf_len, len); + NM_SET_OUT (p_buf_ptr, buf); + buf[0] = '\0'; +} + +#define nm_utils_strbuf_init(buf, p_buf_ptr, p_buf_len) \ + G_STMT_START { \ + G_STATIC_ASSERT (G_N_ELEMENTS (buf) == sizeof (buf) && sizeof (buf) > sizeof (char *)); \ + _nm_utils_strbuf_init ((buf), sizeof (buf), (p_buf_ptr), (p_buf_len)); \ + } G_STMT_END void nm_utils_strbuf_append (char **buf, gsize *len, const char *format, ...) __attribute__((__format__ (__printf__, 3, 4))); void nm_utils_strbuf_append_c (char **buf, gsize *len, char c); void nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str);