'main': Tighten condition.

Should rule out brace expansions such as '{foo,bar}' and '{10..20}'.
This commit is contained in:
Daniel Shahaf 2018-10-22 04:56:50 +00:00
parent 9870ccc505
commit ad3a6cb3c9

View File

@ -379,6 +379,8 @@ _zsh_highlight_main_highlighter_highlight_list()
local -a match mbegin mend list_highlights local -a match mbegin mend list_highlights
# seen_alias is a map of aliases already seen to avoid loops like alias a=b b=a # seen_alias is a map of aliases already seen to avoid loops like alias a=b b=a
local -A seen_alias local -A seen_alias
# Pattern for parameter names
readonly parameter_name_pattern='([A-Za-z_][A-Za-z0-9_]*|[0-9]+)'
list_highlights=() list_highlights=()
# "R" for round # "R" for round
@ -561,7 +563,7 @@ _zsh_highlight_main_highlighter_highlight_list()
_zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection _zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection
fi fi
continue continue
elif [[ $arg == '{'*'}' ]] && _zsh_highlight_main__is_redirection $args[1]; then elif [[ $arg == '{'${~parameter_name_pattern}'}' ]] && _zsh_highlight_main__is_redirection $args[1]; then
# named file descriptor: {foo}>&2 # named file descriptor: {foo}>&2
in_redirection=3 in_redirection=3
_zsh_highlight_main_add_region_highlight $start_pos $end_pos named-fd _zsh_highlight_main_add_region_highlight $start_pos $end_pos named-fd
@ -587,7 +589,7 @@ _zsh_highlight_main_highlighter_highlight_list()
parameter_name=${arg:1} parameter_name=${arg:1}
fi fi
if [[ $res == none ]] && zmodload -e zsh/parameter && if [[ $res == none ]] && zmodload -e zsh/parameter &&
[[ ${parameter_name} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+)$ ]] && [[ ${parameter_name} =~ ^${~parameter_name_pattern}$ ]] &&
(( ${+parameters[(e)${MATCH}]} )) && [[ ${parameters[(e)$MATCH]} != *special* ]] (( ${+parameters[(e)${MATCH}]} )) && [[ ${parameters[(e)$MATCH]} != *special* ]]
then then
# Set $arg. # Set $arg.