From e2fb3243ea89ad405743cc0983c7d15d3b1db95b Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Thu, 18 Jan 2018 23:25:42 +0000 Subject: [PATCH 1/3] 'main': Prepare for next commit. No functional change. --- highlighters/main/main-highlighter.zsh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 6981b0f..61cc17e 100644 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -803,12 +803,12 @@ _zsh_highlight_main_highlighter_highlight_argument() _zsh_highlight_main_add_region_highlight $start_pos $end_pos default for (( i = 1 ; i <= end_pos - start_pos ; i += 1 )); do - case "$arg[$i]" in - "\\") (( i += 1 )); continue;; - "'") _zsh_highlight_main_highlighter_highlight_single_quote $i; (( i = REPLY ));; - '"') _zsh_highlight_main_highlighter_highlight_double_quote $i; (( i = REPLY ));; - '`') _zsh_highlight_main_highlighter_highlight_backtick $i; (( i = REPLY ));; - '$') + case ${arg:$i-1} in + "\\"*) (( i += 1 )); continue;; + "'"*) _zsh_highlight_main_highlighter_highlight_single_quote $i; (( i = REPLY ));; + '"'*) _zsh_highlight_main_highlighter_highlight_double_quote $i; (( i = REPLY ));; + '`'*) _zsh_highlight_main_highlighter_highlight_backtick $i; (( i = REPLY ));; + '$'*) if [[ $arg[i+1] == "'" ]]; then _zsh_highlight_main_highlighter_highlight_dollar_quote $i (( i = REPLY )) @@ -822,7 +822,7 @@ _zsh_highlight_main_highlighter_highlight_argument() elif [[ $arg[i+1] == [*@#?-$!] ]]; then (( i += 1 )) fi;; - [*?]|\<) + [*?]*|\<*) # The '<' is for the <-> globbing syntax. (This function doesn't get called on redirection tokens.) if $highlight_glob; then _zsh_highlight_main_add_region_highlight $start_pos $end_pos globbing From 1c4ad6b6dc9a8ff61297c403daace094bee4c6ac Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Thu, 18 Jan 2018 23:26:20 +0000 Subject: [PATCH 2/3] 'main': Don't match redirection operators in command substitutions as <-> number range globs. Fixes #483. --- highlighters/main/main-highlighter.zsh | 2 +- highlighters/main/test-data/redirection-in-cmdsubst.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 61cc17e..8214fcd 100644 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -822,7 +822,7 @@ _zsh_highlight_main_highlighter_highlight_argument() elif [[ $arg[i+1] == [*@#?-$!] ]]; then (( i += 1 )) fi;; - [*?]*|\<*) + [*?]*|\<[0-9]#-[0-9]#\>) # The '<' is for the <-> globbing syntax. (This function doesn't get called on redirection tokens.) if $highlight_glob; then _zsh_highlight_main_add_region_highlight $start_pos $end_pos globbing diff --git a/highlighters/main/test-data/redirection-in-cmdsubst.zsh b/highlighters/main/test-data/redirection-in-cmdsubst.zsh index ea1155d..ac7a365 100644 --- a/highlighters/main/test-data/redirection-in-cmdsubst.zsh +++ b/highlighters/main/test-data/redirection-in-cmdsubst.zsh @@ -32,5 +32,5 @@ BUFFER=$': $( Date: Fri, 19 Jan 2018 00:51:11 +0000 Subject: [PATCH 3/3] fixup! 'main': Don't match redirection operators in command substitutions as <-> number range globs. Fixes #483. --- highlighters/main/main-highlighter.zsh | 2 +- highlighters/main/test-data/number_range-glob.zsh | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 8214fcd..d7f9be1 100644 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -822,7 +822,7 @@ _zsh_highlight_main_highlighter_highlight_argument() elif [[ $arg[i+1] == [*@#?-$!] ]]; then (( i += 1 )) fi;; - [*?]*|\<[0-9]#-[0-9]#\>) + [*?]*|\<[0-9]#-[0-9]#\>*) # The '<' is for the <-> globbing syntax. (This function doesn't get called on redirection tokens.) if $highlight_glob; then _zsh_highlight_main_add_region_highlight $start_pos $end_pos globbing diff --git a/highlighters/main/test-data/number_range-glob.zsh b/highlighters/main/test-data/number_range-glob.zsh index f8b51c9..1808492 100644 --- a/highlighters/main/test-data/number_range-glob.zsh +++ b/highlighters/main/test-data/number_range-glob.zsh @@ -28,13 +28,13 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -BUFFER='print <-> x<-> ' +BUFFER='print <-> x<->y ' expected_region_highlight=( '1 5 builtin' # print '7 9 globbing' # <-> - '11 14 globbing' # x<-> - '16 16 redirection' # < - '17 22 default' # foo2-3 (the filename) - '23 23 redirection' # > + '11 15 globbing' # x<-> + '17 17 redirection' # < + '18 23 default' # foo2-3 (the filename) + '24 24 redirection' # > )