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

Re: [PATCH v3 6/6] builtin: send usage() help text to standard output

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 16, 2025, 17:30 UTC
Message-ID
<xmqqv7uesm26.fsf@gitster.g>
In-Reply-To
<20250116012524.1557441-7-gitster@pobox.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 15 quoted lines
> Using the show_usage_and_exit_if_asked() helper we introduced
> earlier, fix callers of usage() that want to show the help text when
> explicitly asked by the end-user.  The help text now goes to the
> standard output stream for them.
>
> These are the bog standard "if we got only '-h', then that is a
> request for help" callers.  Their
>
> 	if (argc == 2 && !strcmp(argv[1], "-h"))
> 		usage(message);
>
> are simply replaced with
>
> 	show_usage_and_exit_if_asked(argc, argv, message);
> ...

The above is a bit of a lie. There is one strange thing I did, which needs to be redone.

Show 14 quoted lines
> diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
> index bed2816c2d..9bd4b29c5b 100644
> --- a/builtin/fetch-pack.c
> +++ b/builtin/fetch-pack.c
> @@ -176,6 +176,9 @@ int cmd_fetch_pack(int argc,
>  			list_objects_filter_set_no_filter(&args.filter_options);
>  			continue;
>  		}
> +
> +		if (!strcmp(arg, "-h"))
> +			show_usage_and_exit_if_asked(2, &arg - 1, fetch_pack_usage);
>  		usage(fetch_pack_usage);
>  	}
>  	if (deepen_not.nr)

I think we should just call show_usage_and_exit_if_asked() before entering the loop without changing anything else.

Previous: Junio C HamanoNext: Junio C Hamano
Message 15 of 37 in “Send help text from "git cmd -h" to stdout”
  1. 0/6 Send help text from "git cmd -h" to stdoutJunio C Hamano, Jan 16, 2025
  2. 1/6 parse-options: add show_usage_help_and_exit_if_asked()Junio C Hamano, Jan 16, 2025
  3. 2/6 t0012: optionally check that "-h" output goes to stdoutJunio C Hamano, Jan 16, 2025
  4. 3/6 builtins: send usage_with_options() help text to standard outputJunio C Hamano, Jan 16, 2025
  5. 4/6 usage: add show_usage_and_exit_if_asked()Junio C Hamano, Jan 16, 2025
  6. Jeff KingJan 16, 2025
  7. Jeff KingJan 16, 2025
  8. Junio C HamanoJan 16, 2025
  9. Jeff KingJan 16, 2025
  10. Junio C HamanoJan 16, 2025
  11. 5/6 oddballs: send usage() help text to standard outputJunio C Hamano, Jan 16, 2025
  12. Jeff KingJan 16, 2025
  13. Junio C HamanoJan 16, 2025
  14. 6/6 builtin: send usage() help text to standard outputJunio C Hamano, Jan 16, 2025
  15. Junio C HamanoJan 16, 2025
  16. Junio C HamanoJan 16, 2025
  17. Jeff KingJan 16, 2025
  18. Junio C HamanoJan 16, 2025
  19. 0/6 Send help text from "git cmd -h" to stdoutJunio C Hamano, Jan 16, 2025
  20. 1/6 t0012: optionally check that "-h" output goes to stdoutJunio C Hamano, Jan 16, 2025
  21. 2/6 parse-options: add show_usage_with_options_if_asked()Junio C Hamano, Jan 16, 2025
  22. 3/6 usage: add show_usage_if_asked()Junio C Hamano, Jan 16, 2025
  23. Junio C HamanoJan 16, 2025
  24. Jeff KingJan 17, 2025
  25. 4/6 builtins: send usage_with_options() help text to standard outputJunio C Hamano, Jan 16, 2025
  26. 5/6 oddballs: send usage() help text to standard outputJunio C Hamano, Jan 16, 2025
  27. 6/6 builtin: send usage() help text to standard outputJunio C Hamano, Jan 16, 2025
  28. Jeff KingJan 17, 2025
  29. Junio C HamanoJan 17, 2025
  30. 0/6 Send help text from "git cmd -h" to stdoutJunio C Hamano, Jan 17, 2025
  31. 1/6 t0012: optionally check that "-h" output goes to stdoutJunio C Hamano, Jan 17, 2025
  32. 2/6 parse-options: add show_usage_with_options_if_asked()Junio C Hamano, Jan 17, 2025
  33. 3/6 usage: add show_usage_if_asked()Junio C Hamano, Jan 17, 2025
  34. 4/6 builtins: send usage_with_options() help text to standard outputJunio C Hamano, Jan 17, 2025
  35. 5/6 oddballs: send usage() help text to standard outputJunio C Hamano, Jan 17, 2025
  36. 6/6 builtin: send usage() help text to standard outputJunio C Hamano, Jan 17, 2025
  37. Jeff KingJan 18, 2025

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.