Commit 99bede34 authored by David Lawrence Ramsey's avatar David Lawrence Ramsey
Browse files

have nano handle SIGHUP/SIGTERM properly when it's suspended

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1562 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
parent 2dd7ed14
Showing with 11 additions and 1 deletion
+11 -1
......@@ -92,6 +92,10 @@ CVS code -
- Toggle MARK_ISSET() at the beginning of the function instead
of setting it in one place and unsetting it in another place.
(David Benbennick)
do_suspend()
- Use handle_hupterm() to handle SIGHUP and SIGTERM so we can
properly deal with them while nano is suspended. (DLR; problem
found by David Benbennick)
abcd()
- Removed, as it's unneeded due to the low-level input overhaul.
(DLR)
......
......@@ -2852,6 +2852,12 @@ RETSIGTYPE do_suspend(int signal)
/* Restore the terminal settings for the disabled keys */
tcsetattr(0, TCSANOW, &oldterm);
/* Trap SIGHUP and SIGTERM so we can properly deal with them while
suspended */
act.sa_handler = handle_hupterm;
sigaction(SIGHUP, &act, NULL);
sigaction(SIGTERM, &act, NULL);
/* We used to re-enable the default SIG_DFL and raise SIGTSTP, but
then we could be (and were) interrupted in the middle of the call.
So we do it the mutt way instead */
......@@ -2863,8 +2869,8 @@ RETSIGTYPE do_cont(int signal)
{
/* Now we just update the screen instead of having to reenable the
SIGTSTP handler. */
doupdate();
/* The Hurd seems to need this, otherwise a ^Y after a ^Z will
start suspending again. */
signal_init();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment