X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fstrv.c;h=2d556f4a076a664a71ffc70f0bd77d675e531bde;hb=e3ded78be7df143ba780dd55ca8897fdddd67460;hp=6b76d0eaef57616b11f3aa5f32f29de714236605;hpb=f274ece0f76b5709408821e317e87aef76123db6;p=elogind.git diff --git a/src/shared/strv.c b/src/shared/strv.c index 6b76d0eae..2d556f4a0 100644 --- a/src/shared/strv.c +++ b/src/shared/strv.c @@ -370,6 +370,32 @@ fail: return NULL; } +int strv_extend(char ***l, const char *value) { + char **c; + char *v; + unsigned n; + + if (!value) + return 0; + + v = strdup(value); + if (!v) + return -ENOMEM; + + n = strv_length(*l); + c = realloc(*l, sizeof(char*) * (n + 2)); + if (!c) { + free(v); + return -ENOMEM; + } + + c[n] = v; + c[n+1] = NULL; + + *l = c; + return 0; +} + char **strv_uniq(char **l) { char **i;