git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] completion: fix __git_cmd_idx regression for zsh

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Aug 16, 2021, 09:19 UTC
Message-ID
<20210816091935.548555-1-felipe.contreras@gmail.com>

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(-)
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
Message 1 of 1 in “completion: fix __git_cmd_idx regression for zsh”
  1. completion: fix __git_cmd_idx regression for zshFelipe Contreras, Aug 16, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.