fi
}
- if declare -f $completion_func >/dev/null 2>/dev/null; then
+__git_complete_common () {
+ local command="$1"
+
+ case "$cur" in
+ --*)
+ __gitcomp_builtin "$command"
+ ;;
+ esac
+}
+
+__git_cmds_with_parseopt_helper=
+__git_support_parseopt_helper () {
+ test -n "$__git_cmds_with_parseopt_helper" ||
+ __git_cmds_with_parseopt_helper="$(__git --list-parseopt-builtins)"
+
+ case " $__git_cmds_with_parseopt_helper " in
+ *" $1 "*)
+ return 0
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+}
+
+__git_complete_command () {
+ local command="$1"
+ local completion_func="_git_${command//-/_}"
- elif __git_support_parseopt_helper "$command"; then
++ if ! declare -f $completion_func >/dev/null 2>/dev/null &&
++ declare -f _completion_loader >/dev/null 2>/dev/null
++ then
++ _completion_loader "git-$command"
++ fi
++ if declare -f $completion_func >/dev/null 2>/dev/null
++ then
+ $completion_func
+ return 0
++ elif __git_support_parseopt_helper "$command"
++ then
+ __git_complete_common "$command"
+ return 0
+ else
+ return 1
+ fi
+}
+
__git_main ()
{
local i c=1 command __git_dir __git_repo_path