]> xenbits.xensource.com Git - libvirt.git/commitdiff
add function virCommandNewVAList
authorDmitry Guryanov <dguryanov@parallels.com>
Tue, 31 Jul 2012 18:56:06 +0000 (22:56 +0400)
committerDaniel Veillard <veillard@redhat.com>
Wed, 1 Aug 2012 03:44:32 +0000 (11:44 +0800)
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 <dguryanov@parallels.com>
src/util/command.c
src/util/command.h

index 35080d26629ebb6808c9c8f4f8ad782a6f910083..334ca8996d81b383e9f7b01e5007168a02ed0a63 100644 (file)
@@ -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
index 34d93a8045b655341ee26460f3c82fecbf4cbfd5..2eb460afb4239cd8ab49edc7f2b803f104cd7058 100644 (file)
@@ -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
  */