shared/options: allow output ret_arg to be omitted

Sometimes we have a parser which would never use the argument.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2026-04-01 15:34:45 +02:00
parent 3220a1c57f
commit c26f432729
+7 -3
View File
@@ -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;
}