So that users can easily define aliases, such as: _GIT_complete gf git_fetch Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- contrib/completion/git-completion.bash | 10 +++++----- t/t9902-completion.sh | 9 ++++++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 049110e..2b7ef02 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -2678,6 +2678,7 @@ _gitk () __git_func_wrap () { + local cmd="${1#git_}" cmd_pos=1 if [[ -n ${ZSH_VERSION-} ]]; then emulate -L bash setopt KSH_TYPESET @@ -2695,8 +2696,7 @@ __git_func_wrap () _$1 } -# this is NOT a public function; use at your own risk -__git_complete () +_GIT_complete () { local name="${2-$1}" local wrapper="_${name}_wrap" @@ -2705,13 +2705,13 @@ __git_complete () || complete -o default -o nospace -F $wrapper $1 } -__git_complete git -__git_complete gitk +_GIT_complete git +_GIT_complete gitk # The following are necessary only for Cygwin, and only are needed # when the user has tab-completed the executable name and consequently # included the '.exe' suffix. # if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then -__git_complete git.exe git +_GIT_complete git.exe git fi diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 6904594..2037452 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -63,7 +63,7 @@ run_completion () local _cword _words=( $1 ) (( _cword = ${#_words[@]} - 1 )) - _git_wrap && print_comp + ${comp_wrap-_git_wrap} && print_comp } test_completion () @@ -316,4 +316,11 @@ test_expect_success 'global options extra checks' ' test_completion "git --no-pager tag -d v" "v0.1 " ' +test_expect_success 'aliases' ' + local comp_wrap=_git_fetch_wrap && + _GIT_complete gf git_fetch && + test_completion "gf o" "origin " && + test_completion "gf origin m" "master:master " +' + test_done -- 1.7.10 -- 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