SG_BEGIN_DECL()
-/** Buffer code **/
-typedef struct {
+/** @defgroup xbt_strbuff String buffers
+ * @ingroup XBT_adt
+ *
+ * This data container is very similar to the Java StringBuffer:
+ * that's a string to which you can add content with a lesser performance
+ * penalty than if you recreate a new string from scratch. Once done building
+ * your string, you must retrieve the content and free its container.
+ *
+ * @{
+ */
+
+/** @brief Buffer data container **/
+struct xbt_strbuff {
char *data;
int used, size;
-} s_xbt_strbuff_t, *xbt_strbuff_t;
+};
+typedef struct xbt_strbuff s_xbt_strbuff_t;
+typedef struct xbt_strbuff* xbt_strbuff_t;
-XBT_PUBLIC(void) xbt_strbuff_empty(xbt_strbuff_t b);
+XBT_PUBLIC(void) xbt_strbuff_clear(xbt_strbuff_t b);
XBT_PUBLIC(xbt_strbuff_t) xbt_strbuff_new(void);
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);
+/** @} */
SG_END_DECL()
#endif