@ -125,6 +125,7 @@ _zsh_highlight_main_highlighter()
typeset -a ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW
typeset -a ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW
local -a options_to_set # used in callees
local -a options_to_set # used in callees
local buf = " $PREBUFFER $BUFFER "
local buf = " $PREBUFFER $BUFFER "
integer len = " ${# buf } "
region_highlight = ( )
region_highlight = ( )
if ( ( path_dirs_was_set ) ) ; then
if ( ( path_dirs_was_set ) ) ; then
@ -234,11 +235,13 @@ _zsh_highlight_main_highlighter()
# indistinguishable from 'echo foo echo bar' (one command with three
# indistinguishable from 'echo foo echo bar' (one command with three
# words for arguments).
# words for arguments).
local needle = $'[;\n]'
local needle = $'[;\n]'
integer offset = ${ ${ buf [start_pos+1,-1] } [(i) $needle ] }
# Len-start_pos drops one character, but it should do it, as start_pos
# starts from next, not from "start_pos", character
integer offset = ${ ${ buf : start_pos : len-start_pos } [(i) $needle ] }
( ( start_pos += offset - 1 ) )
( ( start_pos += offset - 1 ) )
( ( end_pos = start_pos + $# arg ) )
( ( end_pos = start_pos + $# arg ) )
else
else
( ( start_pos += ${# buf [ $start_pos +1,-1] } -${# ${ buf [ $start_pos +1,-1] ##([[: space : ]]| \\ [[ : space : ]])# } } ) )
( ( start_pos += ( len-start_pos) -${# ${ ${ buf : start_pos : len-start_pos } ##([[: space : ]]| \\ [[ : space : ]])# } } ) )
( ( end_pos = $start_pos +${# arg } ) )
( ( end_pos = $start_pos +${# arg } ) )
fi
fi