1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-03 10:21:46 +02:00

users/26406: preserve caller setopts in zargs

This commit is contained in:
Bart Schaefer 2021-01-23 13:25:24 -08:00
parent 6e20f0e3d1
commit b374f7b318
2 changed files with 19 additions and 2 deletions

View file

@ -1,3 +1,7 @@
2021-01-23 Bart Schaefer <schaefer@zsh.org>
* users/26406: Functions/Misc/zargs: preserve caller setopts
2021-01-20 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* 47849: Test/E01options.ztst, Test/V08zpty.ztst,

View file

@ -70,6 +70,19 @@
# this behavior, as do -l/-L, but when -i/-I appear anywhere then -l/-L
# are ignored (forced to 1).
# First, capture the current setopts as "sticky emulation"
if zmodload zsh/parameter
then
emulate $(emulate -l) -c "\
_zarun() {
options=( ${(j: :kv)options[@]} monitor off zle off )"'
eval "$@"
}'
else
# Warning?
emulate $(emulate -l) -c '_zarun() { eval "$@" }'
fi
emulate -L zsh || return 1
local -a opts eof n s l P i
@ -186,8 +199,8 @@ local execute='
elif (( $opts[(I)-(-verbose|t)] ))
then print -u2 -r -- "$call"
fi
eval "{
\"\${(@)call}\"
_zarun "{
\"\${call[@]}\"
} $bg"'
local ret=0 analyze='
case $? in