From: Dmitry Guryanov Date: Tue, 31 Jul 2012 18:56:06 +0000 (+0400) Subject: add function virCommandNewVAList X-Git-Tag: v0.10.0-rc0~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4033df7ed8974ecd1c377b80529c130a2e76c50d;p=thirdparty%2Flibvirt.git add function virCommandNewVAList Add function virCommandNewVAList which is equivalent to the virCommandNewArgList but with va_list instead of a variable number of arguments. Signed-off-by: Dmitry Guryanov --- diff --git a/src/util/command.c b/src/util/command.c index 35080d2662..334ca8996d 100644 --- a/src/util/command.c +++ b/src/util/command.c @@ -815,6 +815,28 @@ virCommandNewArgList(const char *binary, ...) return cmd; } +/** + * virCommandNewVAList: + * @binary: program to run + * @va_list: additional arguments + * + * Create a new command with a NULL terminated + * variable argument list. @binary is handled as in virCommandNew. + */ +virCommandPtr +virCommandNewVAList(const char *binary, va_list list) +{ + virCommandPtr cmd = virCommandNew(binary); + const char *arg; + + if (!cmd || cmd->has_error) + return cmd; + + while ((arg = va_arg(list, const char *)) != NULL) + virCommandAddArg(cmd, arg); + return cmd; +} + /* * Preserve the specified file descriptor in the child, instead of diff --git a/src/util/command.h b/src/util/command.h index 34d93a8045..2eb460afb4 100644 --- a/src/util/command.h +++ b/src/util/command.h @@ -45,6 +45,9 @@ virCommandPtr virCommandNewArgs(const char *const*args) ATTRIBUTE_NONNULL(1); virCommandPtr virCommandNewArgList(const char *binary, ...) ATTRIBUTE_NONNULL(1) ATTRIBUTE_SENTINEL; +virCommandPtr virCommandNewVAList(const char *binary, va_list list) + ATTRIBUTE_NONNULL(1); + /* All error report from these setup APIs is * delayed until the Run/RunAsync methods */