git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/7] builtins: always pass prefix to parse_options()

From
Jeff King <peff@peff.net>
Date
Mar 28, 2023, 20:54 UTC
Message-ID
<20230328205432.GB1754055@coredump.intra.peff.net>
In-Reply-To
<20230328205253.GA1753925@coredump.intra.peff.net>

Our builtins receive a "prefix" argument as part of their cmd_foo() function. We should always pass this to parse_options() if we're calling it, as it may be used for OPT_FILENAME() options.

In the cases here, there's no option that would use it, so we're not fixing any bug. This is just future-proofing and setting a good example (plus quelling some -Wunused-parameter warnings).

Note in the case of revert/cherry-pick, that we plumb the prefix through to run_sequencer(), as those builtins are just thin wrappers around it.

Signed-off-by: Jeff King <peff@peff.net>
---
 builtin/mktag.c  | 2 +-
 builtin/revert.c | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/builtin/mktag.c b/builtin/mktag.c
index 42c2457c705..967a4442dee 100644
--- a/builtin/mktag.c
+++ b/builtin/mktag.c
@@ -81,7 +81,7 @@ int cmd_mktag(int argc, const char **argv, const char *prefix)
 	int tagged_type;
 	struct object_id result;
 
-	argc = parse_options(argc, argv, NULL,
+	argc = parse_options(argc, argv, prefix,
 			     builtin_mktag_options,
 			     builtin_mktag_usage, 0);
 
diff --git a/builtin/revert.c b/builtin/revert.c
index 62986a7b1b0..287721fd37b 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c
@@ -94,7 +94,8 @@ static void verify_opt_compatible(const char *me, const char *base_opt, ...)
 		die(_("%s: %s cannot be used with %s"), me, this_opt, base_opt);
 }
 
-static int run_sequencer(int argc, const char **argv, struct replay_opts *opts)
+static int run_sequencer(int argc, const char **argv, const char *prefix,
+			 struct replay_opts *opts)
 {
 	const char * const * usage_str = revert_or_cherry_pick_usage(opts);
 	const char *me = action_name(opts);
@@ -141,7 +142,7 @@ static int run_sequencer(int argc, const char **argv, struct replay_opts *opts)
 		options = parse_options_concat(options, cp_extra);
 	}
 
-	argc = parse_options(argc, argv, NULL, options, usage_str,
+	argc = parse_options(argc, argv, prefix, options, usage_str,
 			PARSE_OPT_KEEP_ARGV0 |
 			PARSE_OPT_KEEP_UNKNOWN_OPT);
 
@@ -246,7 +247,7 @@ int cmd_revert(int argc, const char **argv, const char *prefix)
 
 	opts.action = REPLAY_REVERT;
 	sequencer_init_config(&opts);
-	res = run_sequencer(argc, argv, &opts);
+	res = run_sequencer(argc, argv, prefix, &opts);
 	if (res < 0)
 		die(_("revert failed"));
 	replay_opts_release(&opts);
@@ -260,7 +261,7 @@ int cmd_cherry_pick(int argc, const char **argv, const char *prefix)
 
 	opts.action = REPLAY_PICK;
 	sequencer_init_config(&opts);
-	res = run_sequencer(argc, argv, &opts);
+	res = run_sequencer(argc, argv, prefix, &opts);
 	if (res < 0)
 		die(_("cherry-pick failed"));
 	replay_opts_release(&opts);
-- 
2.40.0.675.gb17cd5d94c8
Previous: Jeff KingNext: Jeff King
Message 3 of 10 in “unused argc/argv/prefix parameters”
  1. 0/7 unused argc/argv/prefix parametersJeff King, Mar 28, 2023
  2. 1/7 fast-import: fix file access when run from subdirJeff King, Mar 28, 2023
  3. 2/7 builtins: always pass prefix to parse_options()Jeff King, Mar 28, 2023
  4. 3/7 builtins: annotate always-empty prefix parametersJeff King, Mar 28, 2023
  5. 4/7 builtins: mark unused prefix parametersJeff King, Mar 28, 2023
  6. 5/7 mark "argv" as unused when we check argcJeff King, Mar 28, 2023
  7. 6/7 t/helper: mark unused argv/argc argumentsJeff King, Mar 28, 2023
  8. 7/7 parse-options: drop parse_opt_unknown_cb()Jeff King, Mar 28, 2023
  9. Derrick StoleeMar 29, 2023
  10. Junio C HamanoMar 29, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.