VIR_FREE(escaped);
}
+/**
+ * virBufferStrcatVArgs:
+ * @buf: the buffer to append to
+ * @ap: variable argument structure
+ *
+ * See virBufferStrcat.
+ */
+void
+virBufferStrcatVArgs(virBufferPtr buf,
+ va_list ap)
+{
+ char *str;
+
+ if (buf->error)
+ return;
+
+ while ((str = va_arg(ap, char *)) != NULL)
+ virBufferAdd(buf, str, -1);
+}
+
/**
* virBufferStrcat:
* @buf: the buffer to append to
virBufferStrcat(virBufferPtr buf, ...)
{
va_list ap;
- char *str;
-
- if (buf->error)
- return;
va_start(ap, buf);
- while ((str = va_arg(ap, char *)) != NULL)
- virBufferAdd(buf, str, -1);
+ virBufferStrcatVArgs(buf, ap);
va_end(ap);
}
ATTRIBUTE_FMT_PRINTF(2, 0);
void virBufferStrcat(virBufferPtr buf, ...)
ATTRIBUTE_SENTINEL;
+void virBufferStrcatVArgs(virBufferPtr buf, va_list ap);
+
void virBufferEscape(virBufferPtr buf, char escape, const char *toescape,
const char *format, const char *str);
void virBufferEscapeN(virBufferPtr buf, const char *format,