From: Zbigniew Jędrzejewski-Szmek Date: Tue, 24 Mar 2026 15:26:31 +0000 (+0100) Subject: shared/options: allow output ret_arg to be omitted X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c26f432729b4715e46fb047badaeaff0d86a7a44;p=thirdparty%2Fsystemd.git shared/options: allow output ret_arg to be omitted Sometimes we have a parser which would never use the argument. --- diff --git a/src/shared/options.c b/src/shared/options.c index c5118f33426..853df0d38d2 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; }