Module Name: src Committed By: kre Date: Thu Aug 20 23:09:56 UTC 2020
Modified Files: src/bin/sh: eval.c trap.c Log Message: Be less conservative about when we do clear_traps() when we have traps_invalid (that is, when we actually nuke the parent shell's caught traps in a subshell). This allows more reasonable use of "trap -p" (and similar) in subshells than existed before (and in particular, that command can be in a function now - there can also be several related commands like traps=$(trap -p INT; trap -p QUIT; trap -p HUP) A side effect of all of this is that (eval "$(trap -p)"; ...) now allows copying caught traps into a subshell environment, if desired. Also att the ksh93 variant (the one not picked by POSIX as it isn't generally as useful) of "trap -p" (but call it "trap -P" which extracts just the trap action for named signals (giving more than one is usually undesirable). This allows eval "$(trap -P INT)" to run the action for SIGINT traps, without needing to attempt to parse the "trap -p" output. To generate a diff of this commit: cvs rdiff -u -r1.180 -r1.181 src/bin/sh/eval.c cvs rdiff -u -r1.54 -r1.55 src/bin/sh/trap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.