driver: Be resilient to KSH_ARRAYS being set in the calling scope
The «emulate» call isn't sufficient, since these lines are parsed before it takes effect. Fixes #689 (née #622). See also #688 for preventing these gymnastics from being needed in the first place. See also https://github.com/junegunn/fzf/pull/1924 for an inter-plugin interaction that this probably fixes.
This commit is contained in:
		
							parent
							
								
									b85e313bc9
								
							
						
					
					
						commit
						b00be5f741
					
				|  | @ -86,12 +86,12 @@ _zsh_highlight() | |||
|   # Before we 'emulate -L', save the user's options | ||||
|   local -A zsyh_user_options | ||||
|   if zmodload -e zsh/parameter; then | ||||
|     zsyh_user_options=("${(@kv)options}") | ||||
|     zsyh_user_options=("${(kv)options[@]}") | ||||
|   else | ||||
|     local canonical_options onoff option raw_options | ||||
|     raw_options=(${(f)"$(emulate -R zsh; set -o)"}) | ||||
|     canonical_options=(${${${(M)raw_options:#*off}%% *}#no} ${${(M)raw_options:#*on}%% *}) | ||||
|     for option in $canonical_options; do | ||||
|     for option in "${canonical_options[@]}"; do | ||||
|       [[ -o $option ]] | ||||
|       # This variable cannot be eliminated c.f. workers/42101. | ||||
|       onoff=${${=:-off on}[2-$?]} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue