[PATCH] git-completion.zsh: define __gitcomp_file compatibility function
- From
Matthieu Moy <matthieu.moy@imag.fr>
- Date
- Mar 5, 2013, 08:43 UTC
- Message-ID
- <1362473035-5034-1-git-send-email-Matthieu.Moy@imag.fr>
- In-Reply-To
- <vpqtxowp9e2.fsf@grenoble-inp.fr>
Commit fea16b47b60 (Fri Jan 11 19:48:43 2013, Manlio Perillo, git-completion.bash: add support for path completion), introduced a new __gitcomp_file function that uses the bash builtin "compgen". The function was redefined for ZSH in the deprecated section of git-completion.bash, but not in the new git-completion.zsh script.
As a result, users of git-completion.zsh trying to complete "git add fo<tab>" get an error:
git add fo__gitcomp_file:8: command not found: compgen
This patch adds the redefinition and removes the error.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> ---
> Felipe, you know ZSH completion much better than me. Could you turn this > into a real patch?
No response from Felipe, so I'm trying my own patch. Compared to the snippet I already sent, I added the -f option to "compadd", which was there in the __gitcomp_file function defined in the deprecated ZSH compatibility section of the bash script, and gives the ZSH equivalent for "compopt -o filenames".
This fixes an annoying regression for ZSH users, so it may deserve to be in the future 1.8.2.
contrib/completion/git-completion.zsh | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index 4577502..cf8116d 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-}" -f -- ${=1} && _ret=0 +} + _git () { local _ret=1
-- 1.8.1.3.572.g35e1b60