X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcommon.c;h=82a4f017dc9c04a734e47160c10f84b632670b30;hb=7285e5f59ffa4efb391485fe9b35ee02f3dc856f;hp=b679bf70f4ccff6a385c47b5fb4f47ccbd26a8b1;hpb=3faf514fd9b869cadda0f895e14e5036313c7781;p=collectd.git diff --git a/src/common.c b/src/common.c index b679bf70..82a4f017 100644 --- a/src/common.c +++ b/src/common.c @@ -1396,3 +1396,35 @@ int strtoderive (const char *string, derive_t *ret_value) /* {{{ */ *ret_value = tmp; return (0); } /* }}} int strtoderive */ + +int strarray_add (char ***ret_array, size_t *ret_array_len, char const *str) /* {{{ */ +{ + char **array; + size_t array_len = *ret_array_len; + + if (str == NULL) + return (EINVAL); + + array = realloc (*ret_array, + (array_len + 1) * sizeof (*array)); + if (array == NULL) + return (ENOMEM); + *ret_array = array; + + array[array_len] = strdup (str); + if (array[array_len] == NULL) + return (ENOMEM); + + array_len++; + *ret_array_len = array_len; + return (0); +} /* }}} int strarray_add */ + +void strarray_free (char **array, size_t array_len) /* {{{ */ +{ + size_t i; + + for (i = 0; i < array_len; i++) + sfree (array[i]); + sfree (array); +} /* }}} void strarray_free */