]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: buffer: Add virBufferStrcatVArgs
authorPeter Krempa <pkrempa@redhat.com>
Mon, 24 Jul 2017 16:54:15 +0000 (18:54 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 27 Jul 2017 07:31:14 +0000 (09:31 +0200)
Split out the worker loop into a separate function and export it.

Reviewed-by: Eric Blake <eblake@redhat.com>
src/libvirt_private.syms
src/util/virbuffer.c
src/util/virbuffer.h

index 0dca0a8da387060f9433679ac3e7084e3830e098..37b815c06bf5c0743a4a019d64012f4fc459bb94 100644 (file)
@@ -1345,6 +1345,7 @@ virBufferFreeAndReset;
 virBufferGetIndent;
 virBufferSetIndent;
 virBufferStrcat;
+virBufferStrcatVArgs;
 virBufferTrim;
 virBufferURIEncodeString;
 virBufferUse;
index f07b119c0fb95d98b590fbcbe9bd645762fafaf5..28a291bb0f74acccf92992fea118d223323a1f4f 100644 (file)
@@ -830,6 +830,26 @@ virBufferEscapeShell(virBufferPtr buf, const char *str)
     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
@@ -842,14 +862,9 @@ void
 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);
 }
 
index 7a7014aa70ab4f61f048e8846fa3a5aa1f2c5962..f34217968b83ccb4c4826b97636a88844de6e749 100644 (file)
@@ -80,6 +80,8 @@ void virBufferVasprintf(virBufferPtr buf, const char *format, va_list 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,