main-highlighter: Probe dirs after blacklist

Move tests on the highlight path until after the blacklist is checked so
that blacklisted paths are not tested. This should prevent hangs on dead
remote filesystems provided the path is blacklisted in
X_ZSH_HIGHLIGHT_DIRS_BLACKLIST.

Updated tests to 'default' highlight as the blacklist is now checked
before the path is tested.

Bug: https://github.com/zsh-users/zsh-syntax-highlighting/issues/528
This commit is contained in:
Sam Jorna (wraeth) 2018-08-30 10:12:55 +10:00
parent db6cac391b
commit 47d6dac133
No known key found for this signature in database
GPG key ID: F5ACE689C9A7573C
2 changed files with 5 additions and 4 deletions

View file

@ -761,8 +761,6 @@ _zsh_highlight_main_highlighter_check_path()
REPLY=path
[[ -z $expanded_path ]] && return 1
[[ -L $expanded_path ]] && return 0
[[ -e $expanded_path ]] && return 0
# Check if this is a blacklisted path
if [[ $expanded_path[1] == / ]]; then
@ -777,6 +775,9 @@ _zsh_highlight_main_highlighter_check_path()
tmp_path=$tmp_path:h
done
[[ -L $expanded_path ]] && return 0
[[ -e $expanded_path ]] && return 0
# Search the path in CDPATH
local cdpath_dir
for cdpath_dir in $cdpath ; do

View file

@ -34,7 +34,7 @@ X_ZSH_HIGHLIGHT_DIRS_BLACKLIST=($PWD/foo)
expected_region_highlight=(
'1 1 builtin' # :
'3 9 path' # foo/bar
"11 $(( 14 + $#PWD )) path" # $PWD/foo
'3 9 default' # foo/bar
"11 $(( 14 + $#PWD )) default" # $PWD/foo
"$(( 16 + $#PWD )) $(( 20 + $#PWD )) default" # foo/b
)