File mutt-Fix-SIGQUIT-handling.patch of Package mutt

From 6fa7a74c23760283282fd8b369d2b7b0fae69fec Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msuchanek@suse.de>
Date: Tue, 12 Nov 2019 14:21:21 +0100
Subject: [PATCH] Fix SIGQUIT handling.

SIGQUIT is not masked in mutt_block_signals. This is not consistent with
SIGTERM/SIGINT handling.

When quit = ask-yes is set the SIGQUIT handler does not ask. Use the
SIGINT handler for handling SIGQUIT as well to fix this.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
 signal.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- signal.c
+++ signal.c	2019-11-14 08:40:31.823464569 +0000
@@ -170,6 +170,7 @@ static void sighandler (int sig)
       break;
 #endif
 
+    case SIGQUIT:
     case SIGINT:
       SigInt = 1;
       break;
@@ -199,7 +200,6 @@ void mutt_signal_init (void)
   act.sa_handler = exit_handler;
   sigaction (SIGTERM, &act, NULL);
   sigaction (SIGHUP, &act, NULL);
-  sigaction (SIGQUIT, &act, NULL);
 
   /* we want to avoid race conditions */
   sigaddset (&act.sa_mask, SIGTSTP);
@@ -219,6 +219,7 @@ void mutt_signal_init (void)
 
   sigaction (SIGCONT, &act, NULL);
   sigaction (SIGTSTP, &act, NULL);
+  sigaction (SIGQUIT, &act, NULL);
   sigaction (SIGINT, &act, NULL);
 #if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM)
   sigaction (SIGWINCH, &act, NULL);
@@ -258,6 +259,7 @@ void mutt_block_signals (void)
     sigaddset (&Sigset, SIGTERM);
     sigaddset (&Sigset, SIGHUP);
     sigaddset (&Sigset, SIGTSTP);
+    sigaddset (&Sigset, SIGQUIT);
     sigaddset (&Sigset, SIGINT);
 #if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM)
     sigaddset (&Sigset, SIGWINCH);
@@ -358,5 +360,6 @@ void mutt_allow_interrupt (int dispositi
   if (disposition == 0)
     sa.sa_flags |= SA_RESTART;
 #endif
+  sigaction (SIGQUIT, &sa, NULL);
   sigaction (SIGINT, &sa, NULL);
 }
openSUSE Build Service is sponsored by