[PATCH 03/51] completion: fix __git_cmd_idx regression for zsh
From: Felipe Contreras <hidden>
Date: 2022-08-30 09:31:55
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> Signed-off-by: Felipe Contreras <redacted> --- contrib/completion/git-completion.zsh | 2 +- t/t9904-zsh-completion.sh | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-)
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]}
diff --git a/t/t9904-zsh-completion.sh b/t/t9904-zsh-completion.sh
index 5179b2dc76..656eaf77ab 100755
--- a/t/t9904-zsh-completion.sh
+++ b/t/t9904-zsh-completion.sh@@ -1121,4 +1121,10 @@ test_expect_failure 'options with value' ' EOF ' +test_expect_success 'main sets correct __git_cmd_idx' ' + echo modified > file1 && + touch file3 && + test_completion "compdef _git ga=git_add${LF}ga --update f" "file1" +' + test_done
--
2.37.2.351.g9bf691b78c.dirty