1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-12 00:06:36 +02:00

argv-array: implement argv_array_pushv()

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>
This commit is contained in:
Paul Tan 2015-06-14 16:41:50 +08:00 committed by Junio C Hamano
parent ffad85c599
commit 85b343245b
3 changed files with 10 additions and 0 deletions

View File

@ -46,6 +46,9 @@ Functions
Format a string and push it onto the end of the array. This is a Format a string and push it onto the end of the array. This is a
convenience wrapper combining `strbuf_addf` and `argv_array_push`. 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`:: `argv_array_pop`::
Remove the final element from the array. If there are no Remove the final element from the array. If there are no
elements in the array, do nothing. elements in the array, do nothing.

View File

@ -49,6 +49,12 @@ void argv_array_pushl(struct argv_array *array, ...)
va_end(ap); 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) void argv_array_pop(struct argv_array *array)
{ {
if (!array->argc) if (!array->argc)

View File

@ -17,6 +17,7 @@ __attribute__((format (printf,2,3)))
void argv_array_pushf(struct argv_array *, const char *fmt, ...); void argv_array_pushf(struct argv_array *, const char *fmt, ...);
LAST_ARG_MUST_BE_NULL LAST_ARG_MUST_BE_NULL
void argv_array_pushl(struct argv_array *, ...); 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_pop(struct argv_array *);
void argv_array_clear(struct argv_array *); void argv_array_clear(struct argv_array *);