From: Felipe Contreras Date: Wed, 27 Apr 2011 08:20:42 GMT Subject: Re: [PATCH] git-completion: fix zsh support Message-ID: In-Reply-To: <7v62q0b8e0.fsf@alter.siamese.dyndns.org> On Wed, Apr 27, 2011 at 7:55 AM, Junio C Hamano wrote: > Jonathan Nieder 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 completion to work with >> bash v4, 2010-12-02). >> >>  Acked-by: Jonathan Nieder > > 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