# [PATCH] completion: avoid aliased command lookup error in nounset mode

2 messages from 2021-04-16 to 2021-04-16. Participants: Ville Skyttä, Junio C Hamano.
Thread: https://gitlist.dev/t/55504

## Ville Skyttä, 2021-04-16 19:19

Subject: [PATCH] completion: avoid aliased command lookup error in nounset mode
Message-ID: <20210416191939.1120651-1-ville.skytta@iki.fi>
URL: https://gitlist.dev/e/20210416191939.1120651-1-ville.skytta%40iki.fi

```
Aliased command lookup accesses the `list` variable before it has been
set, causing an error in "nounset" mode. Initialize to an empty string
to avoid that.

    $ git nonexistent-command <Tab>bash: list: unbound variable

Signed-off-by: Ville Skyttä <ville.skytta@iki.fi>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index dfa735ea62..49e76e9d08 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1129,7 +1129,7 @@ __git_pretty_aliases ()
 # __git_aliased_command requires 1 argument
 __git_aliased_command ()
 {
-	local cur=$1 last list word cmdline
+	local cur=$1 last list= word cmdline
 
 	while [[ -n "$cur" ]]; do
 		if [[ "$list" == *" $cur "* ]]; then
-- 
2.25.1


```

## Junio C Hamano, 2021-04-16 20:40

Subject: Re: [PATCH] completion: avoid aliased command lookup error in nounset mode
Message-ID: <xmqq7dl2klo1.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqq7dl2klo1.fsf%40gitster.g
In-Reply-To: <20210416191939.1120651-1-ville.skytta@iki.fi>

```
Ville Skyttä <ville.skytta@iki.fi> writes:

> Aliased command lookup accesses the `list` variable before it has been
> set, causing an error in "nounset" mode. Initialize to an empty string
> to avoid that.
>
>     $ git nonexistent-command <Tab>bash: list: unbound variable
>
> Signed-off-by: Ville Skyttä <ville.skytta@iki.fi>
> ---
>  contrib/completion/git-completion.bash | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Thanks, will queue.

> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index dfa735ea62..49e76e9d08 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1129,7 +1129,7 @@ __git_pretty_aliases ()
>  # __git_aliased_command requires 1 argument
>  __git_aliased_command ()
>  {
> -	local cur=$1 last list word cmdline
> +	local cur=$1 last list= word cmdline
>  
>  	while [[ -n "$cur" ]]; do
>  		if [[ "$list" == *" $cur "* ]]; then

```
