main: Fix off by one errors in quote helper functions
This commit is contained in:
parent
e13074528f
commit
fdca2ef714
|
@ -888,6 +888,8 @@ _zsh_highlight_main_highlighter_highlight_single_quote()
|
||||||
if [[ $arg[i] == "'" ]]; then
|
if [[ $arg[i] == "'" ]]; then
|
||||||
style=single-quoted-argument
|
style=single-quoted-argument
|
||||||
else
|
else
|
||||||
|
# If unclosed, i points past the end
|
||||||
|
(( i-- ))
|
||||||
style=single-quoted-argument-unclosed
|
style=single-quoted-argument-unclosed
|
||||||
fi
|
fi
|
||||||
reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style $reply)
|
reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style $reply)
|
||||||
|
@ -902,7 +904,7 @@ _zsh_highlight_main_highlighter_highlight_double_quote()
|
||||||
local i j k style
|
local i j k style
|
||||||
reply=()
|
reply=()
|
||||||
|
|
||||||
for (( i = $1 + 1 ; i < end_pos - start_pos ; i += 1 )) ; do
|
for (( i = $1 + 1 ; i <= end_pos - start_pos ; i += 1 )) ; do
|
||||||
(( j = i + start_pos - 1 ))
|
(( j = i + start_pos - 1 ))
|
||||||
(( k = j + 1 ))
|
(( k = j + 1 ))
|
||||||
case "$arg[$i]" in
|
case "$arg[$i]" in
|
||||||
|
@ -959,6 +961,8 @@ _zsh_highlight_main_highlighter_highlight_double_quote()
|
||||||
if [[ $arg[i] == '"' ]]; then
|
if [[ $arg[i] == '"' ]]; then
|
||||||
style=double-quoted-argument
|
style=double-quoted-argument
|
||||||
else
|
else
|
||||||
|
# If unclosed, i points past the end
|
||||||
|
(( i-- ))
|
||||||
style=double-quoted-argument-unclosed
|
style=double-quoted-argument-unclosed
|
||||||
fi
|
fi
|
||||||
reply=($(( start_pos + $1 - 1)) $(( start_pos + i )) $style $reply)
|
reply=($(( start_pos + $1 - 1)) $(( start_pos + i )) $style $reply)
|
||||||
|
@ -975,7 +979,7 @@ _zsh_highlight_main_highlighter_highlight_dollar_quote()
|
||||||
integer c
|
integer c
|
||||||
reply=()
|
reply=()
|
||||||
|
|
||||||
for (( i = $1 + 2 ; i < end_pos - start_pos ; i += 1 )) ; do
|
for (( i = $1 + 2 ; i <= end_pos - start_pos ; i += 1 )) ; do
|
||||||
(( j = i + start_pos - 1 ))
|
(( j = i + start_pos - 1 ))
|
||||||
(( k = j + 1 ))
|
(( k = j + 1 ))
|
||||||
case "$arg[$i]" in
|
case "$arg[$i]" in
|
||||||
|
@ -1011,6 +1015,8 @@ _zsh_highlight_main_highlighter_highlight_dollar_quote()
|
||||||
if [[ $arg[i] == "'" ]]; then
|
if [[ $arg[i] == "'" ]]; then
|
||||||
style=dollar-quoted-argument
|
style=dollar-quoted-argument
|
||||||
else
|
else
|
||||||
|
# If unclosed, i points past the end
|
||||||
|
(( i-- ))
|
||||||
style=dollar-quoted-argument-unclosed
|
style=dollar-quoted-argument-unclosed
|
||||||
fi
|
fi
|
||||||
reply=($(( start_pos + $1 - 1 )) $(( start_pos + i )) $style $reply)
|
reply=($(( start_pos + $1 - 1 )) $(( start_pos + i )) $style $reply)
|
||||||
|
@ -1027,6 +1033,8 @@ _zsh_highlight_main_highlighter_highlight_backtick()
|
||||||
if [[ $arg[i] == '`' ]]; then
|
if [[ $arg[i] == '`' ]]; then
|
||||||
style=back-quoted-argument
|
style=back-quoted-argument
|
||||||
else
|
else
|
||||||
|
# If unclosed, i points past the end
|
||||||
|
(( i-- ))
|
||||||
style=back-quoted-argument-unclosed
|
style=back-quoted-argument-unclosed
|
||||||
fi
|
fi
|
||||||
reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style)
|
reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user