[PATCH v2] Fix git-completion.bash for use in zsh

Subsystems: the rest

STALE3738d

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH v2] Fix git-completion.bash for use in zsh

From: Alex Merry <hidden>
Date: 2016-06-15 22:53:21

zsh treats
  local some_var=()
as a function declaration, rather than an array declaration (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 produce the message
  local:2: command not found: svn_url_pattern
when GIT_PS1_SHOWUPSTREAM="auto", due to the line
  local svn_remote=() svn_url_pattern count n

Simply doing
  local some_var
  some_var=()
fixes the issue.

Signed-off-by: Alex Merry <redacted>
---

Here it is again, with a better commit message, and no whitespace issues (hopefully).


 contrib/completion/git-completion.bash |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 0acbdda..092a34f 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -94,8 +94,9 @@ __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 ')"
-- 
1.7.6.5

Re: [PATCH v2] Fix git-completion.bash for use in zsh

From: Felipe Contreras <hidden>
Date: 2016-06-15 22:53:29

On Wed, Mar 21, 2012 at 1:06 PM, Alex Merry [off-list ref] wrote:
 __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 ')"
--
Actually, a more proper way to do this is 'local -a svn_remote'.

Cheers.

-- 
Felipe Contreras
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help