Previously, git-completion.zsh redefined complete() to make __git_complete() a no-op. This broke zsh's built-in bash completion compatibility layer (bashcompinit), which defines its own complete(). Sadly, since there is no way in zsh to restore the original defintion of complete() after bash-completion.bash is sourced, we must pass in a flag to git-completion.bash to change its behavior. Signed-off-by: Mark Lodato <lodato@xxxxxxxxxx> --- contrib/completion/git-completion.bash | 1 + contrib/completion/git-completion.zsh | 8 +------- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 9525343..36aa8bb 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -2650,6 +2650,7 @@ __git_func_wrap () # This is NOT a public function; use at your own risk. __git_complete () { + [[ -n $GIT_DO_NOT_CALL_COMPLETE ]] && return local wrapper="__git_wrap${2}" eval "$wrapper () { __git_func_wrap $2 ; }" complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \ diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index 6b77968..9f68d63 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -16,12 +16,6 @@ # # fpath=(~/.zsh $fpath) -complete () -{ - # do nothing - return 0 -} - zstyle -T ':completion:*:*:git:*' tag-order && \ zstyle ':completion:*:*:git:*' tag-order 'common-commands' @@ -39,7 +33,7 @@ if [ -z "$script" ]; then test -f $e && script="$e" && break done fi -ZSH_VERSION='' . "$script" +GIT_DO_NOT_CALL_COMPLETE=1 ZSH_VERSION='' . "$script" __gitcomp () { -- 1.9.0.rc1.175.g0b1dcb5 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html