git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Felipe ContrerasNext: Junio C Hamano
Message 25 of 28 in “git-completion: fix zsh support”
  1. git-completion: fix zsh supportFelipe Contreras, Apr 27, 2011
  2. Jonathan NiederApr 27, 2011
  3. Felipe ContrerasApr 27, 2011
  4. Junio C HamanoApr 27, 2011
  5. completion: avoid "words" as variable name for zsh portabilityJonathan Nieder, Apr 27, 2011
  6. Felipe ContrerasApr 27, 2011
  7. Jonathan NiederApr 27, 2011
  8. Felipe ContrerasApr 27, 2011
  9. John SzakmeisterApr 27, 2011
  10. Felipe ContrerasApr 27, 2011
  11. completion: move private shopt shim for zsh to __git_ namespaceJonathan Nieder, Apr 27, 2011
  12. Felipe ContrerasApr 27, 2011
  13. Jonathan NiederApr 27, 2011
  14. Jonathan NiederMay 6, 2011
  15. Felipe ContrerasMay 6, 2011
  16. SZEDER GáborMay 8, 2011
  17. SZEDER GáborApr 28, 2011
  18. 1/3 bash: don't modify the $cur variable in completion functionsSZEDER Gábor, Apr 28, 2011
  19. 2/3 bash: remove unnecessary _get_comp_words_by_ref() invocationsSZEDER Gábor, Apr 28, 2011
  20. 3/3 bash: don't declare 'local words' to make zsh happySZEDER Gábor, Apr 28, 2011
  21. Felipe ContrerasMay 3, 2011
  22. Felipe ContrerasApr 28, 2011
  23. Junio C HamanoApr 28, 2011
  24. Felipe ContrerasApr 28, 2011
  25. Felipe ContrerasApr 27, 2011
  26. Junio C HamanoApr 27, 2011
  27. Felipe ContrerasApr 27, 2011
  28. Jonathan NiederApr 27, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.