summaryrefslogtreecommitdiff
path: root/src/sbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sbuf.c')
-rw-r--r--src/sbuf.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/sbuf.c b/src/sbuf.c
index bd77d7c..f6313b2 100644
--- a/src/sbuf.c
+++ b/src/sbuf.c
@@ -89,3 +89,33 @@ sbuf_get (struct sbuf *b)
{
return b->data;
}
+
+char *
+sbuf_printf (struct sbuf *b, char *fmt, ...)
+{
+ va_list ap;
+
+ free (b->data);
+
+ va_start (ap, fmt);
+ b->data = xvsprintf (fmt, ap);
+ va_end (ap);
+
+ return b->data;
+}
+
+char *
+sbuf_printf_concat (struct sbuf *b, char *fmt, ...)
+{
+ char *buffer;
+ va_list ap;
+
+ va_start (ap, fmt);
+ buffer = xvsprintf (fmt, ap);
+ va_end (ap);
+
+ sbuf_concat (b, buffer);
+ free (buffer);
+
+ return b->data;
+}