diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2013-04-10 01:57:53 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-14 23:18:58 -0700 |
commit | 1ce23aad3446c8a423cd4ec4de1b91361cdf4a85 (patch) | |
tree | 989bac28b1c337a2e03b1dfd7b79fb4a2c240add | |
parent | 0285118e593833be90b3f025d70dde432c1859e7 (diff) | |
download | git-1ce23aad3446c8a423cd4ec4de1b91361cdf4a85.tar.gz |
completion: add new __gitcompadd helper
The idea is to never touch the COMPREPLY variable directly.
This allows other completion systems (i.e. zsh) to override
__gitcompadd, and do something different instead.
Also, this allows further optimizations down the line.
There should be no functional changes.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | contrib/completion/git-completion.bash | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index d1b731cf65..f7e9a56528 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -195,6 +195,11 @@ _get_comp_words_by_ref () } fi +__gitcompadd () +{ + COMPREPLY=($(compgen -W "$1" -P "$2" -S "$4" -- "$3")) +} + # Generates completion reply with compgen, appending a space to possible # completion words, if necessary. # It accepts 1 to 4 arguments: @@ -211,9 +216,7 @@ __gitcomp () ;; *) local IFS=$'\n' - COMPREPLY=($(compgen -P "${2-}" \ - -W "$(__gitcomp_1 "${1-}" "${4-}")" \ - -- "$cur_")) + __gitcompadd "$(__gitcomp_1 "${1-}" "${4-}")" "${2-}" "$cur_" "" ;; esac } @@ -230,7 +233,7 @@ __gitcomp () __gitcomp_nl () { local IFS=$'\n' - COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}")) + __gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }" } # Generates completion reply with compgen from newline-separated possible @@ -1825,7 +1828,7 @@ _git_config () local remote="${prev#remote.}" remote="${remote%.fetch}" if [ -z "$cur" ]; then - COMPREPLY=("refs/heads/") + __gitcompadd "refs/heads/" "" "" "" return fi __gitcomp_nl "$(__git_refs_remotes "$remote")" |