free(l);
}
-char **strv_copy(char **l) {
+char **strv_copy(char * const *l) {
char **r, **k;
k = r = new(char*, strv_length(l) + 1);
return r;
}
-unsigned strv_length(char **l) {
+unsigned strv_length(char * const *l) {
unsigned n = 0;
if (!l)
return NULL;
}
+char **strv_appendf(char **l, const char *format, ...) {
+ va_list ap;
+ _cleanup_free_ char *s = NULL;
+ int r;
+
+ va_start(ap, format);
+ r = vasprintf(&s, format, ap);
+ va_end(ap);
+
+ if (r < 0)
+ return NULL;
+
+ return strv_append(l, s);
+}
+
int strv_push(char ***l, char *value) {
char **c;
unsigned n;