From: Felipe Contreras Date: Wed, 28 Oct 2020 02:06:51 +0000 (-0600) Subject: completion: zsh: fix for command aliasing X-Git-Tag: v2.30.0-rc0~105^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=81f717bb268e86eee5701b8199d8f030938a184c;p=thirdparty%2Fgit.git completion: zsh: fix for command aliasing A lot of people want to define aliases like gc='git commit', and zsh allows that (when not using 'complete_aliases'), but we need to handle services that call a function other than the main one. With this patch we can do: compdef _git gc=git_commit Additionally, add compatibility for Zsh Git functions which have the form git-commit (with dash, not underscore). Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh index ccf384ba35..f524c6042a 100644 --- a/contrib/completion/git-completion.zsh +++ b/contrib/completion/git-completion.zsh @@ -243,8 +243,12 @@ _git () if (( $+functions[__${service}_zsh_main] )); then __${service}_zsh_main - else + elif (( $+functions[__${service}_main] )); then emulate ksh -c __${service}_main + elif (( $+functions[_${service}] )); then + emulate ksh -c _${service} + elif (( $+functions[_${service//-/_}] )); then + emulate ksh -c _${service//-/_} fi let _ret && _default && _ret=0