From ddd4e57c65b50991975eb11278b612f89981e61e Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 22 Jul 2024 15:27:42 +0000 Subject: [PATCH] Expand full array option values if no index is provided, GitHub issue 4051. --- options.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/options.c b/options.c index fef5637e..bcdab82e 100644 --- a/options.c +++ b/options.c @@ -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(""));