Ralf Thielow <[email protected]> writes:
> If option --help is passed to a Git command, we try to open
> the man page of that command. However, we do it even for commands
> we don't know. Make sure the command is known to Git before try
> to open the man page. If we don't know the command, give the
> usual advice.
>
> Signed-off-by: Ralf Thielow <[email protected]>
> ---
I love it when I say "This shouldn't be too hard; somebody may want
to do a patch", with just a vague implemention idea in my head, and
a patch magically appears with even a better design than I had in
mind when I said it [*1*] ;-)
> builtin/help.c | 21 ++++++++++++++-------
> t/t0012-help.sh | 15 +++++++++++++++
> 2 files changed, 29 insertions(+), 7 deletions(-)
> create mode 100755 t/t0012-help.sh
>
> diff --git a/builtin/help.c b/builtin/help.c
> index 8848013..55d45de 100644
> --- a/builtin/help.c
> +++ b/builtin/help.c
> @@ -433,10 +433,22 @@ static void list_common_guides_help(void)
> putchar('\n');
> }
>
> +static void check_git_cmd(const char* cmd) {
> + char *alias = alias_lookup(cmd);
> +
> + if (!is_git_command(cmd)) {
> + if (alias) {
> + printf_ln(_("`git %s' is aliased to `%s'"), cmd, alias);
> + free(alias);
> + exit(0);
> + } else
> + help_unknown_cmd(cmd);
> + }
> +}
Looks quite reasonable to reuse help_unknown_cmd() there.
Thanks, will queue.
[Footnote]
*1* The vague thing I had in my mind was to use is_git_command() and
alias_lookup() to prevent the "git foo --help" -> "git help foo"
magic from triggering for 'foo' that is not known. Your solution
is MUCH cleaner and more straight-forward.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html