Re: [PATCH] completion: fix completing unstuck email alias arguments
- From
Jacob Keller <jacob.keller@gmail.com>
- Date
- Dec 12, 2015, 01:56 UTC
- Message-ID
- <CA+P7+xrHhWHp8WA8EF7jzsit50uW13=-NEzf0DwNfMyu2dckhA@mail.gmail.com>
- In-Reply-To
- <1449879498-1516-1-git-send-email-szeder@ira.uka.de>
On Fri, Dec 11, 2015 at 4:18 PM, SZEDER Gábor <szeder@ira.uka.de> wrote:
Show 7 quoted lines
> Completing unstuck form of email aliases doesn't quite work: > > $ git send-email --to <TAB> > alice bob cecil > $ git send-email --to a<TAB> > alice bob cecil >
Woops. Is it possible to add a test for this case? I honestly don't know how the tests for the completion works.
Show 34 quoted lines
> While listing email aliases works as expected, the second case should > just complete to 'alice', but it keeps offering all email aliases > instead. > > The cause for this behavior is that in this case we mistakenly tell > __gitcomp() explicitly that the current word to be completed is empty, > while in reality it is not. As a result __gitcomp() doesn't filter > out non-matching aliases, so all aliases end up being offered over and > over again. > > Fix this by not passing the current word to be completed to > __gitcomp() and letting it go the default route and grab it from the > '$cur' variable. Don't pass empty prefix either, because it's assumed > to be empty when unspecified, so it's not necessary. > > Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> > --- > > On top of the recently merged dfbe5eeb32 (completion: add support for > completing email aliases, 2015-11-19). > > contrib/completion/git-completion.bash | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash > index 111b05302b..d9b995799c 100644 > --- a/contrib/completion/git-completion.bash > +++ b/contrib/completion/git-completion.bash > @@ -1716,7 +1716,7 @@ _git_send_email () > --to|--cc|--bcc|--from) > __gitcomp " > $(git --git-dir="$(__gitdir)" send-email --dump-aliases 2>/dev/null) > - " "" "" > + "
Yes this looks reasonable to me.
Show 6 quoted lines
> return > ;; > esac > -- > 2.7.0.rc0.37.g77d69b9 >