help: align the longest command in the command listing
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Thu, 31 Jan 2019 09:23:49 +0000 (16:23 +0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 31 Jan 2019 23:27:35 +0000 (15:27 -0800)
"longest" is used to determine how many extra spaces we need to print
to keep the command description aligned. For the longest command, we
should print no extra space instead of one, or we'll get unaligned
output like this (notice the "checkout" line):

grow, mark and tweak your common history
branch List, create, or delete branches
checkout Switch branches or restore working tree files
commit Record changes to the repository
diff Show changes between commits, commit and ...
merge Join two or more development histories together
rebase Reapply commits on top of another base tip
tag Create, list, delete or verify a tag ...

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
help.c
diff --git a/help.c b/help.c
index ff05fd22dff064f0f872434d20d4ea1eacded07d..520c9080e8e4abf7793af0966588aa370f09d316 100644 (file)
--- a/help.c
+++ b/help.c
@@ -85,7 +85,8 @@ static void print_command_list(const struct cmdname_help *cmds,
                if (cmds[i].category & mask) {
                        size_t len = strlen(cmds[i].name);
                        printf("   %s   ", cmds[i].name);
-                       mput_char(' ', longest > len ? longest - len : 1);
+                       if (longest > len)
+                               mput_char(' ', longest - len);
                        puts(_(cmds[i].help));
                }
        }