From 8a43bd2cd98033a7951f43ecf730c8e9498900df Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Fri, 25 Sep 2015 21:36:20 +0000 Subject: [PATCH] back-dollar-quoted-argument: Highlight \uHHHH and \UHHHHHHHH escapes. --- highlighters/main/main-highlighter.zsh | 8 ++++++-- highlighters/main/test-data/dollar-quoted2.zsh | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 77d7785..bf76e98 100755 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -312,11 +312,15 @@ _zsh_highlight_main_highlighter_highlight_dollar_string() case "$arg[$i]" in "\\") style=$ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument] for (( c = i + 1 ; c < end_pos - start_pos ; c += 1 )); do - [[ "$arg[$c]" != ([0-9xXa-fA-F]) ]] && break + [[ "$arg[$c]" != ([0-9xXuUa-fA-F]) ]] && break done AA=$arg[$i+1,$c-1] # Matching for HEX and OCT values like \0xA6, \xA6 or \012 - if [[ "$AA" =~ "^((x|X)[0-9a-fA-F]{1,2})" || "$AA" =~ "^(0[0-7]{1,3})" ]];then + if [[ "$AA" =~ "^(x|X)[0-9a-fA-F]{1,2}" + || "$AA" =~ "^0[0-7]{1,3}" + || "$AA" =~ "^u[0-9a-fA-F]{1,4}" + || "$AA" =~ "^U[0-9a-fA-F]{1,8}" + ]]; then (( k += $#MATCH )) (( i += $#MATCH )) else diff --git a/highlighters/main/test-data/dollar-quoted2.zsh b/highlighters/main/test-data/dollar-quoted2.zsh index 21df3c8..ecaaa39 100644 --- a/highlighters/main/test-data/dollar-quoted2.zsh +++ b/highlighters/main/test-data/dollar-quoted2.zsh @@ -29,10 +29,12 @@ # ------------------------------------------------------------------------------------------------- ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=$unused_highlight -BUFFER=": \$'foo\xbar'" +BUFFER=": \$'foo\xbar\udeadbeef'" expected_region_highlight=( "3 7 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # $'foo "8 11 $ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]" # \xba - "12 13 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # r' + "12 12 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # r + "13 18 $ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]" # \dead + "19 23 $ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]" # beef' )