提交 a79c6551 编写于 作者: S Shawn O. Pearce 提交者: Junio C Hamano

Remove more sed invocations from within bash completion.

This change removes between 1 and 4 sed invocations per completion
entered by the user.  In the case of cat-file the 4 invocations per
completion can take a while on Cygwin; running these replacements
directly within bash saves some time for the end user.
Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
Signed-off-by: NJunio C Hamano <junkio@cox.net>
上级 e5d5b21f
......@@ -83,15 +83,15 @@ __git_remotes ()
__git_complete_file ()
{
local cur="${COMP_WORDS[COMP_CWORD]}"
local pfx ls ref cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
?*:*)
local pfx ls ref="$(echo "$cur" | sed 's,:.*$,,')"
cur="$(echo "$cur" | sed 's,^.*:,,')"
ref="${cur%%:*}"
cur="${cur#*:}"
case "$cur" in
?*/*)
pfx="$(echo "$cur" | sed 's,/[^/]*$,,')"
cur="$(echo "$cur" | sed 's,^.*/,,')"
pfx="${cur%/*}"
cur="${cur##*/}"
ls="$ref:$pfx"
pfx="$pfx/"
;;
......@@ -193,7 +193,7 @@ _git_fetch ()
*)
case "$cur" in
*:*)
cur=$(echo "$cur" | sed 's/^.*://')
cur="${cur#*:}"
COMPREPLY=($(compgen -W "$(__git_refs)" -- "$cur"))
;;
*)
......@@ -287,7 +287,7 @@ _git_push ()
git-push) remote="${COMP_WORDS[1]}" ;;
git) remote="${COMP_WORDS[2]}" ;;
esac
cur=$(echo "$cur" | sed 's/^.*://')
cur="${cur#*:}"
COMPREPLY=($(compgen -W "$(__git_refs "$remote")" -- "$cur"))
;;
*)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册