git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: "Kristoffer Haugsbakk" <kristofferhaugsbakk@fastmail.com>,
	"Matěj Cepl" <mcepl@cepl.eu>,
	"Jonas Konrad" <jonas.konrad@uni-muenster.de>,
	git@vger.kernel.org
Subject: Re: Git branch outputs usage message on stderr
Date: Wed, 15 Jan 2025 09:56:23 -0800	[thread overview]
Message-ID: <xmqqmsfsx8oo.fsf@gitster.g> (raw)
In-Reply-To: <20250115171423.GB57018@coredump.intra.peff.net> (Jeff King's message of "Wed, 15 Jan 2025 12:14:23 -0500")

Jeff King <peff@peff.net> writes:

> use that everywhere. Possibly it could even do the argc/argv check, too,
> since every call site is going to be doing that itself.

It would look something like this; I am not sure if I like the "this
may show help and exit if the user requested, but otherwise it is a
no-op" semantics, though.

 builtin/am.c    |  3 +--
 parse-options.c | 10 ++++++++++
 parse-options.h |  4 ++++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git c/builtin/am.c w/builtin/am.c
index 370f5593f2..c9571f605a 100644
--- c/builtin/am.c
+++ w/builtin/am.c
@@ -2417,8 +2417,7 @@ int cmd_am(int argc, const char **argv, const char *prefix)
 		OPT_END()
 	};
 
-	if (argc == 2 && !strcmp(argv[1], "-h"))
-		usage_with_options(usage, options);
+	show_usage_help(argc, argv, usage, options);
 
 	git_config(git_default_config, NULL);
 
diff --git c/parse-options.c w/parse-options.c
index 30b9e68f8a..9419b174de 100644
--- c/parse-options.c
+++ w/parse-options.c
@@ -1276,6 +1276,16 @@ void NORETURN usage_with_options(const char * const *usagestr,
 	exit(129);
 }
 
+void show_usage_help(int ac, const char **av,
+		     const char * const *usagestr,
+		     const struct option *opts)
+{
+	if (ac == 2 && !strcmp(av[1], "-h")) {
+		usage_with_options_internal(NULL, usagestr, opts, 0, 0);
+		exit(0);
+	}
+}
+
 void NORETURN usage_msg_opt(const char *msg,
 		   const char * const *usagestr,
 		   const struct option *options)
diff --git c/parse-options.h w/parse-options.h
index ae15342390..75a7493350 100644
--- c/parse-options.h
+++ w/parse-options.h
@@ -388,6 +388,10 @@ int parse_options(int argc, const char **argv, const char *prefix,
 NORETURN void usage_with_options(const char * const *usagestr,
 				 const struct option *options);
 
+void show_usage_help(int, const char **,
+		     const char * const *usagestr,
+		     const struct option *options);
+
 NORETURN void usage_msg_opt(const char *msg,
 			    const char * const *usagestr,
 			    const struct option *options);

  parent reply	other threads:[~2025-01-15 17:56 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-15 11:21 Git branch outputs usage message on stderr Jonas Konrad
2025-01-15 11:36 ` Matěj Cepl
2025-01-15 14:47   ` Jonas Konrad
2025-01-15 15:28   ` Junio C Hamano
2025-01-15 16:55     ` Kristoffer Haugsbakk
2025-01-15 17:14       ` Jeff King
2025-01-15 17:49         ` Junio C Hamano
2025-01-15 17:56         ` Junio C Hamano [this message]
2025-01-15 18:24           ` Jeff King
2025-01-15 21:16             ` Junio C Hamano
2025-01-15 21:29               ` Jeff King
2025-01-15 21:56                 ` Junio C Hamano
2025-01-15 22:27                   ` Jeff King
2025-01-15 23:32                     ` Junio C Hamano
2025-01-16  1:21                       ` Junio C Hamano
2025-01-16 10:24                       ` Jeff King
2025-01-15 22:11                 ` Junio C Hamano
2025-01-15 22:28                   ` Jeff King
2025-01-15 23:35                     ` Junio C Hamano
2025-01-15 18:29           ` Junio C Hamano
2025-01-15 18:33             ` Kristoffer Haugsbakk
2025-01-15 21:13               ` Junio C Hamano
2025-01-15 17:14       ` Jonas Konrad
2025-01-15 17:53         ` Kristoffer Haugsbakk
2025-01-15 17:19       ` Junio C Hamano
2025-01-15 17:39         ` Kristoffer Haugsbakk
2025-01-15 17:47           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqmsfsx8oo.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=jonas.konrad@uni-muenster.de \
    --cc=kristofferhaugsbakk@fastmail.com \
    --cc=mcepl@cepl.eu \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).