Jeff King <peff@xxxxxxxx> writes: >> +`OPT_ARGUMENT(long, &int_var, description)`:: >> Introduce a long-option argument that will be kept in `argv[]`. >> + If this option was seen, `int_var` will be set to one (except >> + if a `NULL` pointer was passed). > > So this effectively makes it into a "bool" that we keep. I think that's > fine. It always uses NOARG, so it is not like we would ever need to see > "we got --foo, and this is the argument it had". > > I did wonder if it was possible for "--no-foo" to trigger this (leaving > the caller who looks at the int unsure if they saw "--foo" or > "--no-foo"), but it seems that the parse-options code checks for > OPTION_ARGUMENT before it ever looks at negation. When a caller that needs to tell --no-foo and lack of any foo related option arises, we should be able to update the function further so that the caller can initialize the variable to -1 (unspecified) and make sure that 0 is left upon seeing --no-foo so it's not a show stopper, I guess.