/* See LICENSE file for copyright and license details. */ #include "common.h" const char ** libenv_vget_chosen_list(enum libenv_class classes_head, va_list classes_tail) { size_t count; const struct libenv_variable *vars; const char **names; size_t i; vars = libenv_get_complete_list(NULL, &count); names = malloc((count + 1U) * sizeof(*names)); if (!names) return NULL; for (i = 0; i < count; i++) names[i] = vars[i].name; names[count] = NULL; libenv_vprocess_list_without_dealloc__(names, classes_head, classes_tail, HAVE_HEAD, NAMES, SELECT); return names; }