[PATCH] git-completion.zsh: define __gitcomp_file compatibility function

2013-03-05 Thread Matthieu Moy
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
fotab 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@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

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] git-completion.zsh: define __gitcomp_file compatibility function

2013-03-05 Thread Junio C Hamano
Matthieu Moy matthieu@imag.fr writes:

 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
 fotab 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@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.

Thanks, and I agree a fix to this issue should be fast-tracked.


  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
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html