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

[PATCH 05/10] parseopt: add a new PARSE_OPT_ARGV0_IS_AN_OPTION option

From
Miklos Vajna <vmiklos@frugalware.org>
Date
Jun 11, 2008, 20:50 UTC
Message-ID
<7b7cdd9349feee76ad97243df807f8f360484083.1213217187.git.vmiklos@frugalware.org>
In-Reply-To
<c72207b02d37f3d8c064534264219f4dd38c7559.1213217187.git.vmiklos@frugalware.org>

This new option tells parse-options not to ignore argv[0]. This is useful when argv cames from split_cmdline(), as in that case argv[0] contains a valuable option as well.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
 parse-options.c |    5 +++++
 parse-options.h |    1 +
 2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/parse-options.c b/parse-options.c
index b98833c..1d01a86 100644
--- a/parse-options.c
+++ b/parse-options.c
@@ -249,6 +249,11 @@ int parse_options(int argc, const char **argv, const struct option *options,
 {
 	struct optparse_t args = { argv + 1, argv, argc - 1, 0, NULL };
 
+	if (flags & PARSE_OPT_ARGV0_IS_AN_OPTION) {
+		args.argv = argv;
+		args.argc = argc;
+	}
+
 	for (; args.argc; args.argc--, args.argv++) {
 		const char *arg = args.argv[0];
 
diff --git a/parse-options.h b/parse-options.h
index 4ee443d..3238401 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -20,6 +20,7 @@ enum parse_opt_type {
 enum parse_opt_flags {
 	PARSE_OPT_KEEP_DASHDASH = 1,
 	PARSE_OPT_STOP_AT_NON_OPTION = 2,
+	PARSE_OPT_ARGV0_IS_AN_OPTION = 4,
 };
 
 enum parse_opt_option_flags {
-- 
1.5.6.rc2.dirty
Previous: Miklos VajnaNext: Miklos Vajna
Message 6 of 14 in “Build in merge”
  1. 00/10 Build in mergeMiklos Vajna, Jun 11, 2008
  2. 01/10 Move split_cmdline() to alias.cMiklos Vajna, Jun 11, 2008
  3. 02/10 Move commit_list_count() to commit.cMiklos Vajna, Jun 11, 2008
  4. 03/10 Move parse-options's skip_prefix() to git-compat-util.hMiklos Vajna, Jun 11, 2008
  5. 04/10 Add new test to ensure git-merge handles pull.twohead and pull.octopusMiklos Vajna, Jun 11, 2008
  6. 05/10 parseopt: add a new PARSE_OPT_ARGV0_IS_AN_OPTION optionMiklos Vajna, Jun 11, 2008
  7. 06/10 Move read_cache_unmerged() to read-cache.cMiklos Vajna, Jun 11, 2008
  8. 07/10 git-fmt-merge-msg: make it usable from other builtinsMiklos Vajna, Jun 11, 2008
  9. 08/10 Introduce get_octopus_merge_bases() in commit.cMiklos Vajna, Jun 11, 2008
  10. 09/10 Introduce filter_independent() in commit.cMiklos Vajna, Jun 11, 2008
  11. 10/10 Build in mergeMiklos Vajna, Jun 11, 2008
  12. Introduce get_octopus_merge_bases() in commit.cMiklos Vajna, Jun 11, 2008
  13. Junio C HamanoJun 11, 2008
  14. Introduce get_octopus_merge_bases() in commit.cMiklos Vajna, Jun 12, 2008

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.