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
Block a user