X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4cc7314baa37e4baa4fd3a648fb1b13ef9c55ed2..a36e8044de323971221f5da46773d54e312d3b3c:/src/xbt/xbt_strbuff.c diff --git a/src/xbt/xbt_strbuff.c b/src/xbt/xbt_strbuff.c index 0780895eb0..9aead1ac34 100644 --- a/src/xbt/xbt_strbuff.c +++ b/src/xbt/xbt_strbuff.c @@ -7,13 +7,14 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "xbt/strbuff.h" +#include #define minimal_increment 512 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(strbuff, xbt, "String buffers"); /** @brief Remove any content from the buffer */ -inline void xbt_strbuff_empty(xbt_strbuff_t b) +inline void xbt_strbuff_clear(xbt_strbuff_t b) { b->used = 0; b->data[0] = '\0'; @@ -25,7 +26,7 @@ xbt_strbuff_t xbt_strbuff_new(void) xbt_strbuff_t res = xbt_malloc(sizeof(s_xbt_strbuff_t)); res->data = xbt_malloc(512); res->size = 512; - xbt_strbuff_empty(res); + xbt_strbuff_clear(res); return res; } @@ -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