Re: [PATCH] bash-completion: fix getting strategy list
- From
Miklos Vajna <vmiklos@frugalware.org>
- Date
- Aug 21, 2008, 14:06 UTC
- Message-ID
- <20080821140610.GS23800@genesis.frugalware.org>
- In-Reply-To
- <7v7iabklas.fsf@gitster.siamese.dyndns.org>
On Wed, Aug 20, 2008 at 10:07:55PM -0700, Junio C Hamano <gitster@pobox.com> wrote:
> > Yes, there are some weird patch in 'next'. Miklos, could you fix the > > output format of that thing?
You were faster. ;-)
Show 35 quoted lines
> I do not think the code in 'next' that reuses the "help" thing to show
> only the list to stdout while still giving the error message to stderr
> makes any sense.
>
> Let's do this.
>
> ---
>
> builtin-merge.c | 14 +++++++++++---
> 1 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git c/builtin-merge.c w/builtin-merge.c
> index 1f9389b..3e8db0d 100644
> --- c/builtin-merge.c
> +++ w/builtin-merge.c
> @@ -110,9 +110,17 @@ static struct strategy *get_strategy(const char *name)
> }
> }
> if (!is_in_cmdlist(&main_cmds, name) && !is_in_cmdlist(&other_cmds, name)) {
> -
> - fprintf(stderr, "Could not find merge strategy '%s'.\n\n", name);
> - list_commands("strategies", longest, &main_cmds, &other_cmds);
> + fprintf(stderr, "Could not find merge strategy '%s'.\n", name);
> + fprintf(stderr, "Available strategies are:");
> + for (i = 0; i < main_cmds.cnt; i++)
> + fprintf(stderr, " %s", main_cmds.names[i]->name);
> + fprintf(stderr, ".\n");
> + if (other_cmds.cnt) {
> + fprintf(stderr, "Available custom strategies are:");
> + for (i = 0; i < other_cmds.cnt; i++)
> + fprintf(stderr, " %s", other_cmds.names[i]->name);
> + fprintf(stderr, ".\n");
> + }
> exit(1);
> }Given that we don't have 100+ merge strategies like we have 100+ git commands, I think printing them in one line should not be problematic, and this definitely improves script usability, so I like it, thanks.