Hi, I've been carrying around these patches for quite some time, many have already been sent, others I refactored to make them more clear. These patches correspond to version 1.1 of git-completion: https://github.com/felipec/git-completion Changes since v2: * Silenced pkg-config command in case of errors * Improved loading of bash script so it's backwards compatible Cheers. diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 26538efb80..49a6ef4236 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -3474,7 +3474,6 @@ __git_func_wrap () # This is NOT a public function; use at your own risk. __git_complete () { - test -n "$ZSH_VERSION" && 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 d25f8691ef..e0fda27f4c 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -27,19 +27,26 @@ zstyle -T ':completion:*:*:git:*' tag-order && \ zstyle -s ":completion:*:*:git:*" script script if [ -z "$script" ]; then local -a locations - local e + local e bash_completion + + bash_completion=$(pkg-config --variable=completionsdir bash-completion 2>/dev/null) || + bash_completion='/usr/share/bash-completion/completions/' + locations=( "$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash "$HOME/.local/share/bash-completion/completions/git" - "$(pkg-config --variable=completionsdir bash-completion)"/git - '/usr/share/bash-completion/completions/git' + "$bash_completion/git" '/etc/bash_completion.d/git' # old debian ) for e in $locations; do test -f $e && script="$e" && break done fi + +local old_complete="$functions[complete]" +functions[complete]=: GIT_SOURCING_ZSH_COMPLETION=y . "$script" +functions[complete]="$old_complete" __gitcomp () { @@ -129,7 +136,7 @@ __gitcomp_file_direct () _git_zsh () { - __gitcomp "v1.0" + __gitcomp "v1.1" } __git_complete_command () Felipe Contreras (29): completion: zsh: fix __gitcomp_direct() completion: zsh: fix name due to broken autoloading completion: zsh: fix bash script extension completion: zsh: reorganize install instructions completion: zsh: fix for directories with spaces completion: zsh: update slave script locations completion: prompt: fix color for Zsh completion: zsh: fix for command aliasing completion: bash: synchronize zsh wrapper completion: bash: remove zsh wrapper completion: zsh: fix completion for --no-.. options completion: fix conflict with bashcomp completion: zsh: add missing direct_append completion: zsh: fix splitting of words completion: zsh: simplify compadd functions completion: zsh: simplify direct compadd completion: zsh: trivial cleanup completion: zsh: simplify nl_append completion: zsh: simplify file_direct completion: zsh: shuffle functions around completion: zsh: refactor command completion completion: zsh: improve command tags completion: zsh: add alias descriptions completion: zsh: trivial simplification completion: zsh: add simple version check completion: bash: trivial cleanup completion: bash: cleanup cygwin check completion: bash: remove old compat wrappers Update copyright notices contrib/completion/git-completion.bash | 113 ++------------------ contrib/completion/git-completion.zsh | 141 ++++++++++++++++--------- contrib/completion/git-prompt.sh | 11 +- t/t9902-completion.sh | 2 +- 4 files changed, 112 insertions(+), 155 deletions(-) -- 2.29.1