Subject: Re: zsh completion broken for file completion

From: Manlio Perillo <[email-masked]>
Date: Thu, 28 Feb 2013 19:59:33 +0100

Il 28/02/2013 19:43, Matthieu Moy ha scritto:
> Hi,
> 
> The completion for e.g. "git add file<tab>" is broken in master. I get
> the following result:
> 
> git add fo__gitcomp_file:8: command not found: compgen
> 
> The guilty commit is fea16b47b60 (Fri Jan 11 19:48:43 2013, Manlio
> Perillo, git-completion.bash: add support for path completion), which
> introduces a new __gitcomp_file function that uses the bash builtin
> "compgen", without redefining the function in git-completion.zsh.
> 
> [...] 
> diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh
> index 4577502..0ba1dcf 100644
> --- a/contrib/completion/git-completion.zsh
> +++ b/contrib/completion/git-completion.zsh
> @@ -60,6 +60,15 @@ __gitcomp_nl ()
>         compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
>  }
>  
> +__gitcomp_file ()
> +{
> +       emulate -L zsh
> +
> +       local IFS=$'\n'
> +       compset -P '*[=:]'
> +       compadd -Q -p "${2-}" -- ${=1} && _ret=0
> +}
> +

This patch is implemented in fea16b47b60, but only for the deprecated
zsh compatibility code inside git-completion.bash.

The reason I did not provided a patch for git-completion.zsh was because
there was a bug in this script [1].

If any changes are made to git-completion.zsh, please update
git-completion.bash, too.

[1] Basically, on my system I need the following change at the end of
    the file:

	-_git
	+autoload -U +X compinit && compinit
	+compdef _git git gitk

    I don't know the reason, however; and it seems that it is a problem
    only for me

> [...]

Regards  Malio