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