contrib/completion: "local var=()" is misinterpreted as func-decl by zsh

Certain versions of zsh seems to treat

    local var=()

as a function declaration, rather than an assignment of an empty array,
although its documentation does not suggest that this should be the case.

With zsh 4.3.15 on Fedora Core 15, this causes

  __git_ps1 " (%s)"

to trigger an error message:

  local:2: command not found: svn_url_pattern

when GIT_PS1_SHOWUPSTREAM="auto".

Signed-off-by: Alex Merry <dev@randomguy3.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Alex Merry 2011-09-01 14:47:31 +01:00 committed by Junio C Hamano
parent 75f49651a1
commit 471dcfdbb2

View file

@ -106,9 +106,10 @@ __gitdir ()
__git_ps1_show_upstream ()
{
local key value
local svn_remote=() svn_url_pattern count n
local svn_remote svn_url_pattern count n
local upstream=git legacy="" verbose=""
svn_remote=()
# get some config options from git-config
local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
while read -r key value; do