'main': Fix the new 'backslash' test on zsh-5.0.2 and older. (The bug

occurred on zsh-5.0.7 and older but I don't have zsh-5.0.7 handy to test
on.)

Evidently, the issue was due to elision.

This addresses #665.0 and #665.5.
This commit is contained in:
Daniel Shahaf 2020-01-12 17:10:34 +00:00
parent 2d0dddf58b
commit 533bfa0116

View File

@ -188,7 +188,7 @@ _zsh_highlight_main__type() {
elif { [[ $1 != */* ]] || is-at-least 5.3 } &&
# Add a subshell to avoid a zsh upstream bug; see issue #606.
# ### Remove the subshell when we stop supporting zsh 5.7.1 (I assume 5.8 will have the bugfix).
! (builtin type -w -- $1) >/dev/null 2>&1; then
! (builtin type -w -- "$1") >/dev/null 2>&1; then
REPLY=none
fi
fi
@ -203,7 +203,7 @@ _zsh_highlight_main__type() {
# starts with an arithmetic expression [«((…))» as the first thing inside
# «$(…)»], which is area that has had some parsing bugs before 5.6
# (approximately).
REPLY="${$(:; (( aliases_allowed )) || unalias -- $1 2>/dev/null; LC_ALL=C builtin type -w -- $1 2>/dev/null)##*: }"
REPLY="${$(:; (( aliases_allowed )) || unalias -- "$1" 2>/dev/null; LC_ALL=C builtin type -w -- "$1" 2>/dev/null)##*: }"
if [[ $REPLY == 'alias' ]]; then
may_cache=0
fi