From: Junio C Hamano <gitster@pobox.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Philippe Blain" <levraiphilippeblain@gmail.com>
Subject: Re: [PATCH v2 9/9] help: don't print "\n" before single-section output
Date: Wed, 23 Feb 2022 14:31:06 -0800 [thread overview]
Message-ID: <xmqqh78pqkph.fsf@gitster.g> (raw)
In-Reply-To: <patch-v2-9.9-08dc693dc3e-20220221T193708Z-avarab@gmail.com> ("Ævar Arnfjörð Bjarmason"'s message of "Mon, 21 Feb 2022 20:38:52 +0100")
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> @@ -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)
This patch is a good example to demonstrate that some changes cannot
be reviewed without showing in the whole file what didn't get
changed. Among three callers of print_cmd_by_category(), two of
them we see here are *not* the first to speak, and do add a blank
line before the call. The other caller that does not appear in the
patch is what is being fixed, list_guides_help(), which has nobody
to speak before it.
The correct pattern we want to follow in these messages is that
before you say something, you add a blank line if somebody else has
spoken before you. It might make sense to tell these print_cmd_by*
helpers if they are the first to speak by passing the pointer to a
"state" variable to indicate what has been emitted so far, instead
of making the callers responsible to physically add blank lines, as
the callers would stop knowing if nobody else has spoken before them
if we further refactor them and introduce new direct callers.
In any case, the posted patch itself looks OK. After following
these 9 steps, I still do not see enough justification for the
earlier "use puts()" step, except for correcting the misused
printf_ln().
Thanks, will queue the whole thing.
> 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
prev parent reply other threads:[~2022-02-23 22:31 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-28 15:35 [PATCH 0/7] help: test and fix small "help -g" regression Ævar Arnfjörð Bjarmason
2021-12-28 15:35 ` [PATCH 1/7] help doc: add missing "]" to "[-a|--all]" Ævar Arnfjörð Bjarmason
2021-12-28 15:35 ` [PATCH 2/7] help.c: use puts() instead of printf{,_ln}() for consistency Ævar Arnfjörð Bjarmason
2021-12-28 15:35 ` [PATCH 3/7] help tests: test "git" and "git help [-a|-g] spacing Ævar Arnfjörð Bjarmason
2021-12-28 15:35 ` [PATCH 4/7] help.c: split up list_all_cmds_help() function Ævar Arnfjörð Bjarmason
2021-12-28 15:35 ` [PATCH 5/7] help: error if [-a|-g|-c] and [-i|-m|-w] are combined Ævar Arnfjörð Bjarmason
2021-12-28 16:18 ` Eric Sunshine
2021-12-29 0:04 ` Ævar Arnfjörð Bjarmason
2021-12-28 15:35 ` [PATCH 6/7] help: add --no-[external-commands|aliases] for use with --all Ævar Arnfjörð Bjarmason
2021-12-28 16:28 ` Eric Sunshine
2021-12-28 15:35 ` [PATCH 7/7] help: don't print "\n" before single-section output Ævar Arnfjörð Bjarmason
2022-02-21 19:38 ` [PATCH v2 0/9] help: tests, parse_options() sanity, fix "help -g" regression Ævar Arnfjörð Bjarmason
2022-02-21 19:38 ` [PATCH v2 1/9] help doc: add missing "]" to "[-a|--all]" Ævar Arnfjörð Bjarmason
2022-02-21 19:38 ` [PATCH v2 2/9] help.c: use puts() instead of printf{,_ln}() for consistency Ævar Arnfjörð Bjarmason
2022-02-23 21:51 ` Junio C Hamano
2022-02-23 21:57 ` Ævar Arnfjörð Bjarmason
2022-02-21 19:38 ` [PATCH v2 3/9] help tests: test "git" and "git help [-a|-g] spacing Ævar Arnfjörð Bjarmason
2022-02-21 19:38 ` [PATCH v2 4/9] help.c: split up list_all_cmds_help() function Ævar Arnfjörð Bjarmason
2022-02-23 22:03 ` Junio C Hamano
2022-02-21 19:38 ` [PATCH v2 5/9] help: note the option name on option incompatibility Ævar Arnfjörð Bjarmason
2022-02-23 22:04 ` Junio C Hamano
2022-02-21 19:38 ` [PATCH v2 6/9] help: correct usage & behavior of "git help --all" Ævar Arnfjörð Bjarmason
2022-02-23 22:12 ` Junio C Hamano
2022-02-21 19:38 ` [PATCH v2 7/9] help: error if [-a|-g|-c] and [-i|-m|-w] are combined Ævar Arnfjörð Bjarmason
2022-02-23 22:16 ` Junio C Hamano
2022-02-21 19:38 ` [PATCH v2 8/9] help: add --no-[external-commands|aliases] for use with --all Ævar Arnfjörð Bjarmason
2022-02-23 22:19 ` Junio C Hamano
2022-02-21 19:38 ` [PATCH v2 9/9] help: don't print "\n" before single-section output Ævar Arnfjörð Bjarmason
2022-02-23 22:31 ` Junio C Hamano [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqh78pqkph.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=levraiphilippeblain@gmail.com \
--cc=pclouds@gmail.com \
--cc=sunshine@sunshineco.com \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).