completion: factor out _git_xxx calling code

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2018-03-24 21:35:21 +01:00 коммит произвёл Junio C Hamano
Родитель d23bb387ae
Коммит 48e1c69ade
1 изменённых файлов: 13 добавлений и 4 удалений

Просмотреть файл

@ -3035,6 +3035,17 @@ _git_worktree ()
fi
}
__git_complete_command () {
local command="$1"
local completion_func="_git_${command//-/_}"
if declare -f $completion_func >/dev/null 2>/dev/null; then
$completion_func
return 0
else
return 1
fi
}
__git_main ()
{
local i c=1 command __git_dir __git_repo_path
@ -3094,14 +3105,12 @@ __git_main ()
return
fi
local completion_func="_git_${command//-/_}"
declare -f $completion_func >/dev/null 2>/dev/null && $completion_func && return
__git_complete_command "$command" && return
local expansion=$(__git_aliased_command "$command")
if [ -n "$expansion" ]; then
words[1]=$expansion
completion_func="_git_${expansion//-/_}"
declare -f $completion_func >/dev/null 2>/dev/null && $completion_func
__git_complete_command "$expansion"
fi
}