diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2013-07-31 10:46:49 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2013-07-31 10:46:49 -0400 |
commit | aa417a4d83999f6d7f092161d5c411b8cbce9977 (patch) | |
tree | a3c0da66e997c079d3803c2c72293bbdc73f2ece /src/libudev/strv.c | |
parent | ccc30166822f4597ceba3e3b62c09b8f091b9cbb (diff) |
static-nodes: remove creation of static nodes if HAVE_LIBKMOD
This address upstream commit edeb68c53f1cdc452016b4c8512586a70b1262e3
and https://bugs.gentoo.org/show_bug.cgi?id=477890. If eudev is
configured with --enable-libkmod then we check for kmod >= 14 and
ifdef out the code removed in the upstream commit. Otherwise we
retain it for modutils.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'src/libudev/strv.c')
-rw-r--r-- | src/libudev/strv.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/libudev/strv.c b/src/libudev/strv.c index 041e20d700..3619701e9d 100644 --- a/src/libudev/strv.c +++ b/src/libudev/strv.c @@ -142,6 +142,43 @@ char **strv_new(const char *x, ...) { return r; } +int strv_push(char ***l, char *value) { + char **c; + unsigned n; + + if (!value) + return 0; + + n = strv_length(*l); + c = realloc(*l, sizeof(char*) * (n + 2)); + if (!c) + return -ENOMEM; + + c[n] = value; + c[n+1] = NULL; + + *l = c; + return 0; +} + +int strv_extend(char ***l, const char *value) { + char *v; + int r; + + if (!value) + return 0; + + v = strdup(value); + if (!v) + return -ENOMEM; + + r = strv_push(l, v); + if (r < 0) + free(v); + + return r; +} + char **strv_uniq(char **l) { char **i; |