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

[PATCH v2 9/9] help: don't print "\n" before single-section output

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Feb 21, 2022, 19:38 UTC
Message-ID
<patch-v2-9.9-08dc693dc3e-20220221T193708Z-avarab@gmail.com>
In-Reply-To
<cover-v2-0.9-00000000000-20220221T193708Z-avarab@gmail.com>

Fix a formatting regression in 1b81d8cb19d (help: use command-list.txt for the source of guides, 2018-05-20). Adjust the output of "git help --guides" and any other future single-section commands so that a newline isn't inserted before the only section being printed.

This changes the output from:
    $ git help --guides
    The Git concept guides are:
    [...]
To:
    $ git help --guides
    The Git concept guides are:
    [...]

That we started printing an extra "\n" in 1b81d8cb19d wasn't intended, but an emergent effect of moving all of the printing of "git help" output to code that was ready to handle printing N sections.

With 1b81d8cb19d we started using the "print_cmd_by_category()" function added earlier in the same series, or in cfb22a02ab5 (help: use command-list.h for common command list, 2018-05-10).

Fixing this formatting nit is easy enough. Let's have all of the output that would like to be "\n"-separated from other lines emit its own "\n". We then adjust "print_cmd_by_category()" to only print a "\n" to delimit the sections it's printing out.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 help.c          | 5 ++++-
 t/t0012-help.sh | 1 -
 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/help.c b/help.c
index 45a21e7e35c..afd3af24124 100644
--- a/help.c
+++ b/help.c
@@ -124,7 +124,8 @@ static void print_cmd_by_category(const struct category_description *catdesc,
 		uint32_t mask = catdesc[i].category;
 		const char *desc = catdesc[i].desc;
 
-		putchar('\n');
+		if (i)
+			putchar('\n');
 		puts(_(desc));
 		print_command_list(cmds, mask, longest);
 	}
@@ -328,6 +329,7 @@ void list_commands(struct cmdnames *main_cmds, struct cmdnames *other_cmds)
 void list_common_cmds_help(void)
 {
 	puts(_("These are common Git commands used in various situations:"));
+	putchar('\n');
 	print_cmd_by_category(common_categories, NULL);
 }
 
@@ -481,6 +483,7 @@ void list_all_cmds_help(int show_external_commands, int show_aliases)
 	int longest;
 
 	puts(_("See 'git help <command>' to read about a specific subcommand"));
+	putchar('\n');
 	print_cmd_by_category(main_categories, &longest);
 
 	if (show_external_commands)
diff --git a/t/t0012-help.sh b/t/t0012-help.sh
index 64321480c68..6c3e1f7159d 100755
--- a/t/t0012-help.sh
+++ b/t/t0012-help.sh
@@ -226,7 +226,6 @@ test_expect_success "'git help -a' section spacing" '
 
 test_expect_success "'git help -g' section spacing" '
 	test_section_spacing_trailer git help -g <<-\EOF &&
-
 	The Git concept guides are:
 
 	EOF
-- 
2.35.1.1132.ga1fe46f8690
Previous: Junio C HamanoNext: Junio C Hamano
Message 24 of 29 in “help: test and fix small "help -g" regression”
  1. 0/7 help: test and fix small "help -g" regressionÆvar Arnfjörð Bjarmason, Dec 28, 2021
  2. 1/7 help doc: add missing "]" to "[-a|--all]"Ævar Arnfjörð Bjarmason, Dec 28, 2021
  3. 2/7 help.c: use puts() instead of printf{,_ln}() for consistencyÆvar Arnfjörð Bjarmason, Dec 28, 2021
  4. 3/7 help tests: test "git" and "git help [-a|-g] spacingÆvar Arnfjörð Bjarmason, Dec 28, 2021
  5. 4/7 help.c: split up list_all_cmds_help() functionÆvar Arnfjörð Bjarmason, Dec 28, 2021
  6. 5/7 help: error if [-a|-g|-c] and [-i|-m|-w] are combinedÆvar Arnfjörð Bjarmason, Dec 28, 2021
  7. Eric SunshineDec 28, 2021
  8. Ævar Arnfjörð BjarmasonDec 29, 2021
  9. 6/7 help: add --no-[external-commands|aliases] for use with --allÆvar Arnfjörð Bjarmason, Dec 28, 2021
  10. Eric SunshineDec 28, 2021
  11. 7/7 help: don't print "\n" before single-section outputÆvar Arnfjörð Bjarmason, Dec 28, 2021
  12. 0/9 help: tests, parse_options() sanity, fix "help -g" regressionÆvar Arnfjörð Bjarmason, Feb 21, 2022
  13. 1/9 help doc: add missing "]" to "[-a|--all]"Ævar Arnfjörð Bjarmason, Feb 21, 2022
  14. 2/9 help.c: use puts() instead of printf{,_ln}() for consistencyÆvar Arnfjörð Bjarmason, Feb 21, 2022
  15. Junio C HamanoFeb 23, 2022
  16. Ævar Arnfjörð BjarmasonFeb 23, 2022
  17. 3/9 help tests: test "git" and "git help [-a|-g] spacingÆvar Arnfjörð Bjarmason, Feb 21, 2022
  18. 6/9 help: correct usage & behavior of "git help --all"Ævar Arnfjörð Bjarmason, Feb 21, 2022
  19. Junio C HamanoFeb 23, 2022
  20. 4/9 help.c: split up list_all_cmds_help() functionÆvar Arnfjörð Bjarmason, Feb 21, 2022
  21. Junio C HamanoFeb 23, 2022
  22. 7/9 help: error if [-a|-g|-c] and [-i|-m|-w] are combinedÆvar Arnfjörð Bjarmason, Feb 21, 2022
  23. Junio C HamanoFeb 23, 2022
  24. 9/9 help: don't print "\n" before single-section outputÆvar Arnfjörð Bjarmason, Feb 21, 2022
  25. Junio C HamanoFeb 23, 2022
  26. 8/9 help: add --no-[external-commands|aliases] for use with --allÆvar Arnfjörð Bjarmason, Feb 21, 2022
  27. Junio C HamanoFeb 23, 2022
  28. 5/9 help: note the option name on option incompatibilityÆvar Arnfjörð Bjarmason, Feb 21, 2022
  29. Junio C HamanoFeb 23, 2022

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.