threads / patch / 56292

patchcompletion: fix __git_cmd_idx regression for zsh

Subject: [PATCH] completion: fix __git_cmd_idx regression for zsh

## tl;dr

One message between Aug 16, 2021 and Aug 16, 2021. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Felipe Contreras· Aug 16, 2021, 09:19 UTC · lore

The commit 59d85a2a05 (git-completion.bash: use $__git_cmd_idx in more places, 2021-04-22) caused a regression when using __git_complete and a command relies on __git_cmd_idx. This was fixed in cea232194d (completion: bash: fix late declaration of __git_cmd_idx, 2021-06-18) but only for bash.

We need the function wrapper (__git_func_wrap in bash and _git in zsh) to define __git_cmd_idx.

Otherwise the equivalent of __git_complete in zsh fails:
  compdef _git ga=git_add
  ga <tab>
  ga __git_find_on_cmdline:[:14: unknown condition: -lt
Reported-by: Harrison McCullough <mccullough.harrison@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---

I had already sent the correct fix [1], but Junio decided to pick somebody else's patch, therefore the regression is still present for zsh.

[1] https://lore.kernel.org/git/20210618185832.700477-1-felipe.contreras@gmail.com/
 contrib/completion/git-completion.zsh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to contrib/completion/git-completion.zsh +1 −1
diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh
index cac6f61881..a1f2d27817 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -271,7 +271,7 @@ __git_zsh_main ()
 _git ()
 {
 	local _ret=1
-	local cur cword prev
+	local cur cword prev __git_cmd_idx=0
 
 	cur=${words[CURRENT]}
 	prev=${words[CURRENT-1]}
-- 
2.32.0.48.g096519100f

← back to recent threads