From: Felipe Contreras Date: Sat, 17 Nov 2012 01:38:18 GMT Subject: [RFC/PATCH 5/5] completion: refactor __gitcomp_1 Message-ID: <1353116298-11798-6-git-send-email-felipe.contreras@gmail.com> In-Reply-To: <1353116298-11798-1-git-send-email-felipe.contreras@gmail.com> It's only used by __gitcomp, so move some code there and avoid going through the loop again. We could get rid of it altogether, but it's useful for zsh's completion wrapper. Signed-off-by: Felipe Contreras --- contrib/completion/git-completion.bash | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index ad3e1fe..d92d11e 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -58,15 +58,12 @@ __gitdir () __gitcomp_1 () { - local c IFS=$' \t\n' - for c in $1; do - c="$c$2" - case $c in - --*=*|*.) ;; - *) c="$c " ;; - esac - printf '%s\n' "$c" - done + local c=$1 + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + printf '%s\n' "$c" } # The following function is based on code from: @@ -249,10 +246,16 @@ __gitcomp () --*=) ;; *) - local IFS=$'\n' - __gitcompadd "$(__gitcomp_1 "${1-}" "${4-}")" "${2-}" "$cur_" "" + local c IFS=$' \t\n' + for c in ${1-}; do + c=`__gitcomp_1 "$c${4-}"` + if [[ "$c" = "$cur_"* ]]; then + COMPREPLY+=("${2-}$c") + fi + done ;; esac + } # Generates completion reply with compgen from newline-separated possible -- 1.8.0