argv-array: implement argv_array_pushv()
authorPaul Tan <pyokagan@gmail.com>
Sun, 14 Jun 2015 08:41:50 +0000 (16:41 +0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 15 Jun 2015 19:40:49 +0000 (12:40 -0700)
When we have a null-terminated array, it would be useful to convert it
or append it to an argv_array for further manipulation.

Implement argv_array_pushv() which will push a null-terminated array of
strings on to an argv_array.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/technical/api-argv-array.txt
argv-array.c
argv-array.h
index 1a797812fb426189b03a814498dd7019c96607b4..8076172a08ce0dfc80e9656cd1ee7712c32c1d3e 100644 (file)
@@ -46,6 +46,9 @@ Functions
        Format a string and push it onto the end of the array. This is a
        convenience wrapper combining `strbuf_addf` and `argv_array_push`.
 
+`argv_array_pushv`::
+       Push a null-terminated array of strings onto the end of the array.
+
 `argv_array_pop`::
        Remove the final element from the array. If there are no
        elements in the array, do nothing.
index 256741d2262b237c56b6730bea9d52c9b39b7ee3..eaed47712b44ed1a5f9e5d35d356d0de4a5a4d54 100644 (file)
@@ -49,6 +49,12 @@ void argv_array_pushl(struct argv_array *array, ...)
        va_end(ap);
 }
 
+void argv_array_pushv(struct argv_array *array, const char **argv)
+{
+       for (; *argv; argv++)
+               argv_array_push(array, *argv);
+}
+
 void argv_array_pop(struct argv_array *array)
 {
        if (!array->argc)
index c65e6e825a96efca6111184e5c50d2406064631f..a2fa0aa606a01d5277e87d2368d7d6876b699474 100644 (file)
@@ -17,6 +17,7 @@ __attribute__((format (printf,2,3)))
 void argv_array_pushf(struct argv_array *, const char *fmt, ...);
 LAST_ARG_MUST_BE_NULL
 void argv_array_pushl(struct argv_array *, ...);
+void argv_array_pushv(struct argv_array *, const char **);
 void argv_array_pop(struct argv_array *);
 void argv_array_clear(struct argv_array *);