If __git_cmd_idx is empty then zsh will silelntly fail to complete remotes when doing "git push <tab>".
Ensure that __git_cmd_idx is non-empty before using it in __git_complete_remote_or_refspec.
This was tested on zsh 5.7.1 (x86_64-apple-darwin19.0). Other versions of zsh, eg. zsh 5.0.2 (x86_64-redhat-linux-gnu), do not exhibit this behavior.
Signed-off-by: David Aguilar <davvid@gmail.com> --- Further testing of the completion behavior spotted this regression.
This should be applied on top of, "contrib/completion: avoid empty arithemetic expressions". and could arguably be squashed into that commit.
I have my zshrc setup to point directly to a git.git worktree and a recent update seems to have caused these regressions.
contrib/completion/git-completion.bash | 3 +++ 1 file changed, 3 insertions(+)
Show changes to contrib/completion/git-completion.bash +3 −0
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index d51ff5302d..bc1aea82bf 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1006,6 +1006,9 @@ __git_complete_revlist () __git_complete_remote_or_refspec () { + if [ -z "$__git_cmd_idx" ]; then + __git_cmd_idx=1 + fi local cur_="$cur" cmd="${words[__git_cmd_idx]}" local i c=$((__git_cmd_idx+1)) remote="" pfx="" lhs=1 no_complete_refspec=0 if [ "$cmd" = "remote" ]; then
-- 2.32.0.rc2.2.ga063d53b1a