mirror of
https://github.com/zsh-users/zsh-syntax-highlighting
synced 2024-12-14 15:34:37 +00:00
'main': Avoid triggering a zsh bug related to hashed commands.
This manifested in completion of the form «./foo<TAB>» where there happened to be a program called 'foo' in $PATH. Fixes #354. Closes #355.
This commit is contained in:
parent
11c9081967
commit
51614ca2c9
@ -113,7 +113,14 @@ _zsh_highlight_main__type() {
|
||||
REPLY=builtin
|
||||
elif (( $+commands[(e)$1] )); then
|
||||
REPLY=command
|
||||
elif ! builtin type -w -- $1 >/dev/null 2>&1; then
|
||||
# zsh 5.2 and older have a bug whereby running 'type -w ./sudo' implicitly
|
||||
# runs 'hash ./sudo=/usr/local/bin/./sudo' (assuming /usr/local/bin/sudo
|
||||
# exists and is in $PATH). Avoid triggering the bug, at the expense of
|
||||
# falling through to the $() below, incurring a fork. (Issue #354.)
|
||||
#
|
||||
# The second disjunct mimics the isrelative() C call from the zsh bug.
|
||||
elif { is-at-least 5.3 || [[ $1 != */* ]] } &&
|
||||
! builtin type -w -- $1 >/dev/null 2>&1; then
|
||||
REPLY=none
|
||||
fi
|
||||
fi
|
||||
|
@ -383,5 +383,7 @@ add-zsh-hook preexec _zsh_highlight_preexec_hook 2>/dev/null || {
|
||||
# Load zsh/parameter module if available
|
||||
zmodload zsh/parameter 2>/dev/null || true
|
||||
|
||||
autoload -U is-at-least
|
||||
|
||||
# Initialize the array of active highlighters if needed.
|
||||
[[ $#ZSH_HIGHLIGHT_HIGHLIGHTERS -eq 0 ]] && ZSH_HIGHLIGHT_HIGHLIGHTERS=(main) || true
|
||||
|
Loading…
Reference in New Issue
Block a user