From: Peter Krempa Date: Mon, 24 Jul 2017 16:54:15 +0000 (+0200) Subject: util: buffer: Add virBufferStrcatVArgs X-Git-Tag: v3.6.0-rc1~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c60388591303c2e13867044696fed455fc6718b;p=thirdparty%2Flibvirt.git util: buffer: Add virBufferStrcatVArgs Split out the worker loop into a separate function and export it. Reviewed-by: Eric Blake --- diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 0dca0a8da3..37b815c06b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1345,6 +1345,7 @@ virBufferFreeAndReset; virBufferGetIndent; virBufferSetIndent; virBufferStrcat; +virBufferStrcatVArgs; virBufferTrim; virBufferURIEncodeString; virBufferUse; diff --git a/src/util/virbuffer.c b/src/util/virbuffer.c index f07b119c0f..28a291bb0f 100644 --- a/src/util/virbuffer.c +++ b/src/util/virbuffer.c @@ -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); } diff --git a/src/util/virbuffer.h b/src/util/virbuffer.h index 7a7014aa70..f34217968b 100644 --- a/src/util/virbuffer.h +++ b/src/util/virbuffer.h @@ -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,