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@xxxxxxxxx> Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- 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