From: Jonathan Nieder Date: Thu, 05 May 2011 23:25:03 GMT Subject: Re: [PATCH for maint] git-completion: fix zsh support Message-ID: <20110505232503.GA7507@elie> In-Reply-To: <1304625144-5206-1-git-send-email-felipe.contreras@gmail.com> Hi, Felipe Contreras wrote: > It turns out 'words' is a special variable used by zsh completion. > > There's probably a bug in zsh's bashcompinit: > http://article.gmane.org/gmane.comp.shells.zsh.devel/22546 > > But in the meantime we can workaround it by using 'typedef -h', which > gets rid of any special meaning. As I mentioned before (sorry to come in late; I assume you forgot to cc the previous participants in the discussion?), I do not think this is a good fix. The point here is that 'words' is a special variable used by zsh completion, and we are using facilities from zsh completion. So if you set 'typeset -h', then the zsh completion functions will use _our_ copy of "words". Now in practice our copy of words matches zsh's anyway, so nothing goes wrong. But that could easily change in the future. > Currently zsh is completely broken after commit da48616 (bash: get > --pretty=m completion to work with bash v4), which introduced > _get_comp_words_by_ref() that comes from debian's bash_completion > scripts The bash_completion project does not originate in Debian fwiw; it was originally from Ian Macdonald iirc and available from http://www.caliban.org/bash/index.shtml and then it was abandoned. The bash-completion project on alioth is not Debian-specific, either. Maybe simplest would be to use Szeder's fix + make the zsh version of _get_comp_words_by_ref not overwrite "words" at all? Hope that helps, Jonathan