mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-04 06:14:50 +01:00
users/17955: new "disown" style for MIME handlers.
Makes handlers put into the background run without job control.
This commit is contained in:
parent
1a4730b8ee
commit
1c9931cc7d
3 changed files with 18 additions and 3 deletions
|
@ -1,5 +1,9 @@
|
|||
2013-08-29 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* users/17955: Doc/Zsh/contrib.yo,
|
||||
Functions/MIME/zsh-mime-handler: "disown" style makes MIME
|
||||
handlers put into background run without job control.
|
||||
|
||||
* based on 31641, 31642: Completion/Unix/Command/_make: support
|
||||
a couple of different variants of make.
|
||||
|
||||
|
|
|
@ -2861,6 +2861,14 @@ question is run using the tt(eval) builtin instead of by starting a new
|
|||
tt(sh) process. This is more efficient, but may not work in the occasional
|
||||
cases where the mailcap handler uses strict POSIX syntax.
|
||||
)
|
||||
kindex(disown, MIME style)
|
||||
item(tt(disown))(
|
||||
If this boolean style is true, mailcap handlers started in the
|
||||
background will be disowned, i.e. not subject to job control within
|
||||
the parent shell. Such handlers nearly always produce their own
|
||||
windows, so the only likely harmful side effect of setting the style is
|
||||
that it becomes harder to kill jobs from within the shell.
|
||||
)
|
||||
kindex(execute-as-is, MIME style)
|
||||
item(tt(execute-as-is))(
|
||||
This style gives a list of patterns to be matched against files
|
||||
|
|
|
@ -74,7 +74,7 @@ if [[ $suffix != *.* ]]; then
|
|||
fi
|
||||
suffix=${suffix#*.}
|
||||
|
||||
local handler flags no_sh no_bg arg
|
||||
local handler flags no_sh no_bg arg bg_flag="&"
|
||||
integer i
|
||||
local -a exec_asis hand_nonex
|
||||
|
||||
|
@ -89,6 +89,9 @@ zsh-mime-contexts -a $suffix execute-as-is exec_asis || exec_asis=('*(*)' '*(/)'
|
|||
zsh-mime-contexts -a $suffix handle-nonexistent hand_nonex ||
|
||||
hand_nonex=('[[:alpha:]]#:/*')
|
||||
|
||||
# Set to true if the job should be disowned.
|
||||
zsh-mime-contexts -t $suffix disown && bg_flag="&!"
|
||||
|
||||
local pattern
|
||||
local -a files
|
||||
|
||||
|
@ -309,8 +312,8 @@ else
|
|||
# Otherwise it's equivalent to removing the eval and all the quotes,
|
||||
# including the (q) flags.
|
||||
if [[ -n $stdin ]]; then
|
||||
eval cat ${(q)argv} "|" ${(q)execargs} "&"
|
||||
eval cat ${(q)argv} "|" ${(q)execargs} $bg_flag
|
||||
else
|
||||
eval ${(q)execargs} "&"
|
||||
eval ${(q)execargs} $bg_flag
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue