[PATCH] completion: bash: fix late declaration of __git_cmd_idx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



A recent update to contrib/completion/git-completion.bash causes bash to fail
auto complete custom commands that are wrapped with __git_func_wrap. Declaring
__git_cmd_idx=0 inside __git_func_wrap resolves the issue.

Signed-off-by: Fabian Wermelinger <fabianw@xxxxxxxxxxxx>
---
Fixes `bash: [: -lt: unary operator expected` error for tab completions
of wrapped `git` commands.  For example, assume the convenience command
`gaa` defined in a shell script as

```bash
git aa "$@"
```

where `git aa` is an alias to `git add --all`.  Then `gaa` is wrapped
for bash completion like

```bash
__git_complete gaa _git_add
```

For this example, the current bash completion fails at
`contrib/completion/git-completion.bash:1190` due to empty local
variable `c` as `__git_cmd_idx` is empty at the definition in
`contrib/completion/git-completion.bash:1179`.  Defining
`__git_cmd_idx=0` earlier in `__git_func_wrap` attempts to solve this
problem.

 contrib/completion/git-completion.bash | 1 +
 1 file changed, 1 insertion(+)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b50c5d0ea3..ca5b456173 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -3512,6 +3512,7 @@ fi
 __git_func_wrap ()
 {
 	local cur words cword prev
+	local __git_cmd_idx=0
 	_get_comp_words_by_ref -n =: cur words cword prev
 	$1
 }
-- 
2.32.0




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux