diff options
author | Ted Pavlic <ted@tedpavlic.com> | 2009-01-15 11:02:22 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-15 09:34:54 -0800 |
commit | 50e126e185c196b9b66dcdefb4b05f090d62dd4c (patch) | |
tree | a32ff197a2b8f56701eeff7c36a306594c6ce0b3 /contrib/completion | |
parent | 25a31f814016891c7728fdebca056ef47ca75547 (diff) | |
download | git-50e126e185c196b9b66dcdefb4b05f090d62dd4c.tar.gz git-50e126e185c196b9b66dcdefb4b05f090d62dd4c.tar.xz |
bash-completion: Try bash completions before simple filetype
When a git completion is not found, a bash shell should try bash-type
completions first before going to standard filetype completions. This
patch adds "-o bashdefault" to the completion line. If that option is
not available, it uses the old method.
This behavior was inspired by Mercurial's bash completion script.
Signed-off-by: Ted Pavlic <ted@tedpavlic.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/completion')
-rwxr-xr-x | contrib/completion/git-completion.bash | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 5d1515cec..201f9a689 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1766,13 +1766,16 @@ _gitk () __git_complete_revlist } -complete -o default -o nospace -F _git git -complete -o default -o nospace -F _gitk gitk +complete -o bashdefault -o default -o nospace -F _git git 2>/dev/null \ + || complete -o default -o nospace -F _git git +complete -o bashdefault -o default -o nospace -F _gitk gitk 2>/dev/null \ + || complete -o default -o nospace -F _gitk 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 -complete -o default -o nospace -F _git git.exe +complete -o bashdefault -o default -o nospace -F _git git.exe 2>/dev/null \ + || complete -o default -o nospace -F _git git.exe fi |