hush: do not reset to default "" traps in subshell

function                                             old     new   delta
reset_traps_to_defaults                              164     211     +47
builtin_umask                                        123     121      -2

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2009-09-25 14:21:06 +02:00
parent 4ea0ca8193
commit 67f7186403
3 changed files with 49 additions and 18 deletions

View File

@@ -0,0 +1,20 @@
# Non-empty traps should be reset in subshell
# HUP is special in interactive shells
trap '' HUP
# QUIT is always special
trap '' QUIT
# SYS is not special
trap '' SYS
# WINCH is harmless
trap 'bad: caught WINCH' WINCH
# With TERM we'll check whether it is reset
trap 'bad: caught TERM' TERM
# using bash, becuase we don't have $PPID (yet)
(bash -c 'kill -HUP $PPID'; echo Ok)
(bash -c 'kill -QUIT $PPID'; echo Ok)
(bash -c 'kill -SYS $PPID'; echo Ok)
(bash -c 'kill -WINCH $PPID'; echo Ok)
(bash -c 'kill -TERM $PPID'; echo Bad: TERM is not reset)
echo Done