completion: use native ZSH array pattern matching

When clearing the builtin operations on re-sourcing in the ZSH case we
can use the native ${parameters} associative array keys values to get
the currently `__gitcomp_builtin_*` operations using pattern matching
instead of using sed.

As also stated in commit 94408dc7, introducing this change the usage of
sed has some overhead implications, while ZSH can do this check just
using its native syntax.

Signed-off-by: Marco Trevisan (Treviño) <mail@3v1n0.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Marco Trevisan (Treviño) 2020-05-26 19:13:17 +00:00 committed by Junio C Hamano
parent 2d5e9f31ac
commit a44a0a9fc4
1 changed files with 1 additions and 1 deletions

View File

@ -373,7 +373,7 @@ __gitcomp ()
# Clear the variables caching builtins' options when (re-)sourcing # Clear the variables caching builtins' options when (re-)sourcing
# the completion script. # the completion script.
if [[ -n ${ZSH_VERSION-} ]]; then if [[ -n ${ZSH_VERSION-} ]]; then
unset $(set |sed -ne 's/^\(__gitcomp_builtin_[a-zA-Z0-9_][a-zA-Z0-9_]*\)=.*/\1/p') 2>/dev/null unset ${(M)${(k)parameters[@]}:#__gitcomp_builtin_*} 2>/dev/null
else else
unset $(compgen -v __gitcomp_builtin_) unset $(compgen -v __gitcomp_builtin_)
fi fi