Skip to content

Commit

Permalink
Merge branch 'fc/zsh-leftover-bits'
Browse files Browse the repository at this point in the history
* fc/zsh-leftover-bits:
  completion: zsh: improve bash script loading
  completion: synchronize zsh wrapper
  completion: cleanup zsh wrapper
  • Loading branch information
Junio C Hamano committed Jun 2, 2013
2 parents 727a46b + 3646b1a commit 6bf931a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 23 deletions.
22 changes: 7 additions & 15 deletions contrib/completion/git-completion.bash
Original file line number Diff line number Diff line change
Expand Up @@ -2663,7 +2663,7 @@ if [[ -n ${ZSH_VERSION-} ]]; then
--*=*|*.) ;;
*) c="$c " ;;
esac
array[$#array+1]="$c"
array+=("$c")
done
compset -P '*[=:]'
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
Expand All @@ -2689,22 +2689,14 @@ if [[ -n ${ZSH_VERSION-} ]]; then
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
}

__git_zsh_helper ()
{
emulate -L ksh
local cur cword prev
cur=${words[CURRENT-1]}
prev=${words[CURRENT-2]}
let cword=CURRENT-1
__${service}_main
}

_git ()
{
emulate -L zsh
local _ret=1
__git_zsh_helper
let _ret && _default -S '' && _ret=0
local _ret=1 cur cword prev
cur=${words[CURRENT]}
prev=${words[CURRENT-1]}
let cword=CURRENT-1
emulate ksh -c __${service}_main
let _ret && _default && _ret=0
return _ret
}

Expand Down
27 changes: 19 additions & 8 deletions contrib/completion/git-completion.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,17 @@
#
# Copyright (c) 2012-2013 Felipe Contreras <felipe.contreras@gmail.com>
#
# You need git's bash completion script installed somewhere, by default on the
# same directory as this script.
# You need git's bash completion script installed somewhere, by default it
# would be the location bash-completion uses.
#
# If your script is on ~/.git-completion.sh instead, you can configure it on
# your ~/.zshrc:
# If your script is somewhere else, you can configure it on your ~/.zshrc:
#
# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
#
# The recommended way to install this script is to copy to
# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file:
# The recommended way to install this script is to copy to '~/.zsh/_git', and
# then add the following to your ~/.zshrc file:
#
# fpath=(~/.zsh/completion $fpath)
# fpath=(~/.zsh $fpath)

complete ()
{
Expand All @@ -27,7 +26,19 @@ zstyle -T ':completion:*:*:git:*' tag-order && \
zstyle ':completion:*:*:git:*' tag-order 'common-commands'

zstyle -s ":completion:*:*:git:*" script script
test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash
if [ -z "$script" ]; then
local -a locations
local e
locations=(
'/etc/bash_completion.d/git' # fedora, old debian
'/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
'/usr/share/bash-completion/git' # gentoo
$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
)
for e in $locations; do
test -f $e && script="$e" && break
done
fi
ZSH_VERSION='' . "$script"

__gitcomp ()
Expand Down

0 comments on commit 6bf931a

Please sign in to comment.