From c26f432729b4715e46fb047badaeaff0d86a7a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 24 Mar 2026 16:26:31 +0100 Subject: [PATCH] shared/options: allow output ret_arg to be omitted Sometimes we have a parser which would never use the argument. --- src/shared/options.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/shared/options.c b/src/shared/options.c index c5118f3342..853df0d38d 100644 --- a/src/shared/options.c +++ b/src/shared/options.c @@ -72,8 +72,6 @@ int option_parse( const Option **ret_option, const char **ret_arg) { - assert(ret_arg); - /* Check and initialize */ if (state->optind == 0) { if (state->argc < 1 || strv_isempty(state->argv)) @@ -226,7 +224,13 @@ int option_parse( if (ret_option) /* Return the matched Option structure to allow the caller to "know" what was matched */ *ret_option = option; - *ret_arg = optval; + + if (ret_arg) + *ret_arg = optval; + else + /* It's fine to omit ret_arg, but only if no options return a value. */ + assert(!optval); + return option->id; }