assert PARSE_OPT_NONEG in parse-options callbacks

In the spirit of 517fe807d6 (assert NOARG/NONEG behavior of
parse-options callbacks, 2018-11-05), let's cover some parse-options
callbacks which expect to be used with PARSE_OPT_NONEG but don't
explicitly assert that this is the case. These callbacks are all used
correctly in the current code, but this will help document their
expectations and future-proof the code.

As a bonus, it also silences -Wunused-parameters (these were added since
the initial sweep of 517fe807d6, and we can't yet turn on
-Wunused-parameters to remind people because it has too many existing
false positives).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2020-09-30 08:29:02 -04:00 committed by Junio C Hamano
parent 424e28fcad
commit 8d2aa8dfac
4 changed files with 8 additions and 0 deletions

View File

@ -2180,6 +2180,8 @@ static int parse_opt_show_current_patch(const struct option *opt, const char *ar
};
int new_value = SHOW_PATCH_RAW;
BUG_ON_OPT_NEG(unset);
if (arg) {
for (new_value = 0; new_value < ARRAY_SIZE(valid_modes); new_value++) {
if (!strcmp(arg, valid_modes[new_value]))

View File

@ -128,6 +128,8 @@ static int write_option_parse_split(const struct option *opt, const char *arg,
{
enum commit_graph_split_flags *flags = opt->value;
BUG_ON_OPT_NEG(unset);
opts.split = 1;
if (!arg)
return 0;

View File

@ -17,6 +17,8 @@ static int option_parse_type(const struct option *opt, const char *arg,
{
enum cmdmode *cmdmode = opt->value;
BUG_ON_OPT_NEG(unset);
if (!strcmp(arg, "bool"))
*cmdmode = ENV_HELPER_TYPE_BOOL;
else if (!strcmp(arg, "ulong"))

View File

@ -105,6 +105,8 @@ int parse_opt_commit(const struct option *opt, const char *arg, int unset)
struct commit *commit;
struct commit **target = opt->value;
BUG_ON_OPT_NEG(unset);
if (!arg)
return -1;
if (get_oid(arg, &oid))