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>
This commit is contained in:
Ted Pavlic 2009-01-15 11:02:22 -05:00 committed by Junio C Hamano
parent 25a31f8140
commit 50e126e185

View File

@ -1766,13 +1766,16 @@ _gitk ()
__git_complete_revlist __git_complete_revlist
} }
complete -o default -o nospace -F _git git complete -o bashdefault -o default -o nospace -F _git git 2>/dev/null \
complete -o default -o nospace -F _gitk gitk || 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 # The following are necessary only for Cygwin, and only are needed
# when the user has tab-completed the executable name and consequently # when the user has tab-completed the executable name and consequently
# included the '.exe' suffix. # included the '.exe' suffix.
# #
if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then 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 fi