threads / patch / 32662

patchgit-completion.bash: replace zsh notation that breaks bash 3.X

Subject: [PATCH] git-completion.bash: replace zsh notation that breaks bash 3.X

## tl;dr

6 messages between Jan 18, 2013 and Jan 18, 2013. Diffs are folded; open one to read it.

replies: 5people: 3as markdown or json

Brandon Casey· Jan 18, 2013, 10:31 UTC · lore

When commit d8b45314 began separating the zsh completion from the bash completion, it introduced a zsh completion "bridge" section into the bash completion script for zsh users to use until they migrated to the zsh script. The zsh '+=()' append-to-array notation prevents bash 3.00.15 on CentOS 4.x from loading the completion script and breaks test 9902. We can easily work around this by using standard Bash array notation.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to contrib/completion/git-completion.bash +1 −1
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a4c48e1..c14e329 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2431,7 +2431,7 @@ if [[ -n ${ZSH_VERSION-} ]]; then
 				--*=*|*.) ;;
 				*) c="$c " ;;
 				esac
-				array+=("$c")
+				array[$(($#array+1))]="$c"
 			done
 			compset -P '*[=:]'
 			compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
-- 
1.8.1.1.252.gdb33759
Andreas Schwab· Jan 18, 2013, 15:02 UTC · re: Brandon Casey · lore

Re: [PATCH] git-completion.bash: replace zsh notation that breaks bash 3.X

Brandon Casey <drafnel@gmail.com> writes:
> +				array[$(($#array+1))]="$c"

You don't need $(( )) since the array index is already evaluated as an arithmethic expression.

Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Brandon Casey· Jan 18, 2013, 19:07 UTC · re: Andreas Schwab · lore

Re: [PATCH] git-completion.bash: replace zsh notation that breaks bash 3.X

On Fri, Jan 18, 2013 at 7:02 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
Show 6 quoted lines
> Brandon Casey <drafnel@gmail.com> writes:
>
>> +                             array[$(($#array+1))]="$c"
>
> You don't need $(( )) since the array index is already evaluated as an
> arithmethic expression.
Ah, I didn't know that.  Thanks.

I think Junio will probably fix this up if he thinks it's worth it, but I can resubmit if necessary.

-Brandon
Junio C Hamano· Jan 18, 2013, 19:08 UTC · re: Brandon Casey · lore

Re: [PATCH] git-completion.bash: replace zsh notation that breaks bash 3.X

Brandon Casey <drafnel@gmail.com> writes:
Show 12 quoted lines
> On Fri, Jan 18, 2013 at 7:02 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> Brandon Casey <drafnel@gmail.com> writes:
>>
>>> +                             array[$(($#array+1))]="$c"
>>
>> You don't need $(( )) since the array index is already evaluated as an
>> arithmethic expression.
>
> Ah, I didn't know that.  Thanks.
>
> I think Junio will probably fix this up if he thinks it's worth it,
> but I can resubmit if necessary.

Please; I do not have mental bandwidth to keep track of contrib/ material myself.

Brandon Casey· Jan 18, 2013, 19:11 UTC · re: Junio C Hamano · lore

Re: [PATCH] git-completion.bash: replace zsh notation that breaks bash 3.X

On Fri, Jan 18, 2013 at 11:08 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 17 quoted lines
> Brandon Casey <drafnel@gmail.com> writes:
>
>> On Fri, Jan 18, 2013 at 7:02 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>>> Brandon Casey <drafnel@gmail.com> writes:
>>>
>>>> +                             array[$(($#array+1))]="$c"
>>>
>>> You don't need $(( )) since the array index is already evaluated as an
>>> arithmethic expression.
>>
>> Ah, I didn't know that.  Thanks.
>>
>> I think Junio will probably fix this up if he thinks it's worth it,
>> but I can resubmit if necessary.
>
> Please; I do not have mental bandwidth to keep track of contrib/
> material myself.
No problem.
-Brandon
Brandon Casey· Jan 18, 2013, 19:24 UTC · re: Brandon Casey · lore

[PATCH v2] git-completion.bash: replace zsh notation that breaks bash 3.X

When commit d8b45314 began separating the zsh completion from the bash completion, it introduced a zsh completion "bridge" section into the bash completion script for zsh users to use until they migrated to the zsh script. The zsh '+=()' append-to-array notation prevents bash 3.00.15 on CentOS 4.x from loading the completion script and breaks test 9902. We can easily work around this by using standard Bash array notation.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
---
On Fri, Jan 18, 2013 at 7:02 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
Show 6 quoted lines
> Brandon Casey <drafnel@gmail.com> writes:
>
>> +                             array[$(($#array+1))]="$c"
>
> You don't need $(( )) since the array index is already evaluated as an
> arithmethic expression.
Fixed.
-Brandon
 contrib/completion/git-completion.bash |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to contrib/completion/git-completion.bash +1 −1
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index a4c48e1..2f99420 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2431,7 +2431,7 @@ if [[ -n ${ZSH_VERSION-} ]]; then
 				--*=*|*.) ;;
 				*) c="$c " ;;
 				esac
-				array+=("$c")
+				array[$#array+1]="$c"
 			done
 			compset -P '*[=:]'
 			compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
-- 
1.7.8.4


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

← back to recent threads