Expand full array option values if no index is provided, GitHub issue

4051.
This commit is contained in:
nicm 2024-07-22 15:27:42 +00:00
parent aa1353947e
commit ddd4e57c65
1 changed files with 20 additions and 2 deletions

View File

@ -578,10 +578,28 @@ char *
options_to_string(struct options_entry *o, int idx, int numeric)
{
struct options_array_item *a;
char *result = NULL;
char *last = NULL;
char *next;
if (OPTIONS_IS_ARRAY(o)) {
if (idx == -1)
return (xstrdup(""));
if (idx == -1) {
RB_FOREACH(a, options_array, &o->value.array) {
next = options_value_to_string(o, &a->value,
numeric);
if (last == NULL)
result = next;
else {
xasprintf(&result, "%s %s", last, next);
free(last);
free(next);
}
last = result;
}
if (result == NULL)
return (xstrdup(""));
return (result);
}
a = options_array_item(o, idx);
if (a == NULL)
return (xstrdup(""));