bisect--helper: use OPT_CMDMODE instead of OPT_BOOL

`--next-all` is meant to be used as a subcommand to support multiple "operation mode" though the current implementation does not contain any other subcommand along side with `--next-all` but further commits will include some more subcommands. Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Mentored-by: Lars Schneider <larsxschneider@gmail.com> Mentored-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Pranit Bauva committed Sep 29, 2017 at 06:49 UTC 9e1c84dfd5311c80962ea0f8a1589881c20d028d
1 file changed +11 -6
builtin/bisect--helper.c
+11 -6
@@ -10,11 +10,11 @@ static const char * const git_bisect_helper_usage[] = {
10
11 int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
12 {
13 - int next_all = 0;
13 + enum { NEXT_ALL = 1 } cmdmode = 0;
14 int no_checkout = 0;
15 struct option options[] = {
16 - OPT_BOOL(0, "next-all", &next_all,
17 - N_("perform 'git bisect next'")),
16 + OPT_CMDMODE(0, "next-all", &cmdmode,
17 + N_("perform 'git bisect next'"), NEXT_ALL),
18 OPT_BOOL(0, "no-checkout", &no_checkout,
19 N_("update BISECT_HEAD instead of checking out the current commit")),
20 OPT_END()
@@ -23,9 +23,14 @@ int cmd_bisect__helper(int argc, const char **argv, const char *prefix)
23 argc = parse_options(argc, argv, prefix, options,
24 git_bisect_helper_usage, 0);
25
26 - if (!next_all)
26 + if (!cmdmode)
27 usage_with_options(git_bisect_helper_usage, options);
28
29 - /* next-all */
30 - return bisect_next_all(prefix, no_checkout);
29 + switch (cmdmode) {
30 + case NEXT_ALL:
31 + return bisect_next_all(prefix, no_checkout);
32 + default:
33 + return error("BUG: unknown subcommand '%d'", cmdmode);
34 + }
35 + return 0;
36 }