Re: [PATCH] git-completion: fix zsh support
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Apr 27, 2011, 08:20 UTC
- Message-ID
- <BANLkTinep961dg9v3TD8hZZAvTYL3_H+xg@mail.gmail.com>
- In-Reply-To
- <7v62q0b8e0.fsf@alter.siamese.dyndns.org>
On Wed, Apr 27, 2011 at 7:55 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
> Jonathan Nieder <jrnieder@gmail.com> writes: > >> Felipe Contreras wrote: >> >>> It turns out 'words' is a special variable used by zsh completion, and >>> it has some strange behavior as we can see. >>> >>> Better avoid it. >> >> Hoorah! I imagine this fixes a regression introduced by >> v1.7.4-rc0~11^2~2 (bash: get --pretty=m<tab> completion to work with >> bash v4, 2010-12-02). >> >> Acked-by: Jonathan Nieder <jrnieder@gmail.com> > > I'd love to share the enthusiasm, but find that "as we can see" needs a > much more clarification.
Jonathan already described it: http://article.gmane.org/gmane.comp.version-control.git/170665
And this snipped demonstrates it:
---
set_vars ()
{
cur="foo"
words="foo"
cwords="foo"
}_foo ()
{
local cur words cwords
set_vars echo "cur=${cur} words=${words} cwords=${cwords}" >> /tmp/comp_test.txt
}compdef _foo foo ---
When trying to auto-complete 'foo' the result would be: cur=foo words= cwords=foo
You can see it's special in the source code: http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob;f=Src/Zle/complete.c;h=6398fd3e77eff2ef819c10503d316b08421034ac;hb=HEAD#l1116
-- Felipe Contreras