]> git.ipfire.org Git - thirdparty/git.git/commit
parse-options: add show_usage_with_options_if_asked()
authorJunio C Hamano <gitster@pobox.com>
Thu, 16 Jan 2025 21:35:49 +0000 (13:35 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Jan 2025 21:30:02 +0000 (13:30 -0800)
commit1782abd7734acffb8ebc37b74e120fd4c4b9c4cc
tree9c4709d36284417155cea27e4a741acd57b927cd
parente4c0a1499cace0c375b90d2d2d7b9baf1af12b76
parse-options: add show_usage_with_options_if_asked()

Many commands call usage_with_options() when they are asked to give
the help message, but it sends the help text to the standard error
stream.  When the user asked for it with "git cmd -h", the help
message is the primary output from the command, hence we should send
it to the standard output stream, instead.

Introduce a helper function that captures the common pattern

if (argc == 2 && !strcmp(argv[1], "-h"))
usage_with_options(usage, options);

and replaces it with

show_usage_with_options_if_asked(argc, argv, usage, options);

to help correct code paths.

Note that this helper function still exits with status 129, and
t0012 insists on it.  After converting all the mistaken callers of
usage_with_options() to call this new helper, we may want to address
it---the end user is asking us to give the help text, and we are
doing exactly as asked, so there is no reason to exit with non-zero
status.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
parse-options.c
parse-options.h