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);
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "xbt/strbuff.h"
+#include <stdarg.h>
#define minimal_increment 512
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