Module Name: src Committed By: kre Date: Thu Apr 25 03:54:10 UTC 2019
Modified Files: src/bin/sh: trap.c Log Message: Better interactive SIGINT handling (when a trap is set), and other cleanups to the trap code. No longer silently ignore attempts to do anything other than set SIGKILL or SIGSTOP to the default ('-") state. Don't include those in trap or trap -p output (the former because they cannot be other than in default state, so simply aren't included, the latter because it is pointless) but do list them when requested with trap -p SIG. Interactive mode SIGINT traps are now run ASAP, rather than after a command has been entered (so the sequence ^C \n is no longer needed to generate one). Further, when trapped, in interactive mode, while waiting for a user command, a SIGINT acts (aside from the trap being run) just like when not trapped, aborts the command being entered (rather than leaving it, which it did when libedit was in use) prints a new prompt, and starts again (which is what should happen.) Traps other than SIGINT (which has always been handled special in interactive mode) are unaffected by this change, as are SIGINT traps in non-interactive shells. Or that is the intent anyway. Fix an in_dotrap ref count bug (was never being decremented... that was inserted in a place never executed) (relatively harmless) and add/improve some trap/signal related DEBUG mode tracing. To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/bin/sh/trap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.