From de8d3863c8a8dc7120a384353a0031666065ad8a Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 1 Oct 2015 14:43:05 +0200 Subject: [PATCH] lib/strv: add strv_extendv() Signed-off-by: Karel Zak --- include/strv.h | 1 + lib/strv.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/include/strv.h b/include/strv.h index 52862989a..260ad12d5 100644 --- a/include/strv.h +++ b/include/strv.h @@ -13,6 +13,7 @@ unsigned strv_length(char * const *l); int strv_extend_strv(char ***a, char **b); int strv_extend_strv_concat(char ***a, char **b, const char *suffix); int strv_extend(char ***l, const char *value); +int strv_extendv(char ***l, const char *format, va_list ap); int strv_extendf(char ***l, const char *format, ...) __attribute__ ((__format__ (__printf__, 2, 0))); int strv_push(char ***l, char *value); diff --git a/lib/strv.c b/lib/strv.c index e030033b6..ddc2a0c5d 100644 --- a/lib/strv.c +++ b/lib/strv.c @@ -373,6 +373,17 @@ int strv_extendf(char ***l, const char *format, ...) { return strv_consume(l, x); } +int strv_extendv(char ***l, const char *format, va_list ap) { + char *x; + int r; + + r = vasprintf(&x, format, ap); + if (r < 0) + return -ENOMEM; + + return strv_consume(l, x); +} + char **strv_reverse(char **l) { unsigned n, i;