From: Karel Zak Date: Thu, 1 Oct 2015 12:43:05 +0000 (+0200) Subject: lib/strv: add strv_extendv() X-Git-Tag: v2.28-rc1~331^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de8d3863c8a8dc7120a384353a0031666065ad8a;p=thirdparty%2Futil-linux.git lib/strv: add strv_extendv() Signed-off-by: Karel Zak --- diff --git a/include/strv.h b/include/strv.h index 52862989a1..260ad12d55 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 e030033b66..ddc2a0c5dd 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;