From bf6825cb9ea9bf73c4eb15d331714be14bc4f927 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 1 Jun 2016 11:12:26 +0200 Subject: [PATCH 1/1] new function: xbt_strbuff_printf() --- include/xbt/strbuff.h | 1 + src/xbt/xbt_strbuff.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/xbt/strbuff.h b/include/xbt/strbuff.h index 2949420011..a165786a7a 100644 --- a/include/xbt/strbuff.h +++ b/include/xbt/strbuff.h @@ -42,6 +42,7 @@ XBT_PUBLIC(xbt_strbuff_t) xbt_strbuff_new_from(const char *s); XBT_PUBLIC(void) xbt_strbuff_free(xbt_strbuff_t b); XBT_PUBLIC(void) xbt_strbuff_free_container(xbt_strbuff_t b); XBT_PUBLIC(void) xbt_strbuff_append(xbt_strbuff_t b, const char *toadd); +XBT_PUBLIC(void) xbt_strbuff_printf(xbt_strbuff_t b, const char *fmt, ...); XBT_PUBLIC(void) xbt_strbuff_chomp(xbt_strbuff_t b); XBT_PUBLIC(void) xbt_strbuff_trim(xbt_strbuff_t b); XBT_PUBLIC(void) xbt_strbuff_varsubst(xbt_strbuff_t b, xbt_dict_t patterns); diff --git a/src/xbt/xbt_strbuff.c b/src/xbt/xbt_strbuff.c index 0780895eb0..a966f309bb 100644 --- a/src/xbt/xbt_strbuff.c +++ b/src/xbt/xbt_strbuff.c @@ -7,6 +7,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "xbt/strbuff.h" +#include #define minimal_increment 512 @@ -75,6 +76,17 @@ void xbt_strbuff_append(xbt_strbuff_t b, const char *toadd) b->used += addlen; } +/** @brief format some content and push it at the end of the buffer */ +void xbt_strbuff_printf(xbt_strbuff_t b, const char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + char *data = bvprintf(fmt, ap); + xbt_strbuff_append(b, data); + xbt_free(data); + va_end(ap); +} + /** @brief Replaces a set of variables by their values * * @param b buffer to modify -- 2.20.1