[PATCH v10 2/9] add function virCommandNewVAList

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxx>
---
 src/util/command.c |   22 ++++++++++++++++++++++
 src/util/command.h |    3 +++
 2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/src/util/command.c b/src/util/command.c
index 35080d2..334ca89 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 34d93a8..2eb460a 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
  */
-- 
1.7.1

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]