]> git.ipfire.org Git - thirdparty/git.git/commitdiff
help: don't print "\n" before single-section output
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Mon, 21 Feb 2022 19:38:52 +0000 (20:38 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Feb 2022 21:41:37 +0000 (13:41 -0800)
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
help.c
t/t0012-help.sh

diff --git a/help.c b/help.c
index 45a21e7e35c375d1796f18fc35ad2b964a5a3b20..afd3af241244787bef41279bf8d0ce30a2a993e8 100644 (file)
--- 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)
index 64321480c689890e26cb258a9c986c25696b3aee..6c3e1f7159d4dcc6a2e61228fa7c4f3cec42ef3b 100755 (executable)
@@ -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