]> git.wh0rd.org Git - nano.git/commitdiff
have nano handle SIGHUP/SIGTERM properly when it's suspended
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 29 Sep 2003 07:21:11 +0000 (07:21 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 29 Sep 2003 07:21:11 +0000 (07:21 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1562 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index 9f3ac321c31d1d4a4420042281c18ef3f5d0a0ac..4a527a2e56e224a5763f6852f2466594c6dda253 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
index fc05e424418e17efdb40bfb1871874329ccb186a..e3b8cbd33ac9473ffc07cbd15c3c4673c7bac937 100644 (file)
@@ -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();