67#ifdef HAVE_DECL_SYS_SIGLIST
68 printf(
_(
"Caught signal %d (%s) ... Exiting\n"), sig, sys_siglist[sig]);
69#elif (defined(__sun__) && defined(__svr4__))
70 printf(
_(
"Caught signal %d (%s) ... Exiting\n"), sig, _sys_siglist[sig]);
71#elif (defined(__alpha) && defined(__osf__))
72 printf(
_(
"Caught signal %d (%s) ... Exiting\n"), sig, __sys_siglist[sig]);
74 printf(
_(
"Caught signal %d ... Exiting\n"), sig);
101 sigemptyset(&act.sa_mask);
103 act.sa_handler = SIG_IGN;
104 sigaction(SIGPIPE, &act, NULL);
107 sigaction(SIGSEGV, &act, NULL);
110 sigaction(SIGTERM, &act, NULL);
111 sigaction(SIGHUP, &act, NULL);
112 sigaction(SIGQUIT, &act, NULL);
115 sigaddset(&act.sa_mask, SIGTSTP);
122 sigaction(SIGALRM, &act, NULL);
126 act.sa_flags = SA_RESTART;
129 sigaction(SIGCONT, &act, NULL);
130 sigaction(SIGTSTP, &act, NULL);
131 sigaction(SIGINT, &act, NULL);
132 sigaction(SIGWINCH, &act, NULL);
138 sigemptyset(&act.sa_mask);
140 act.sa_flags |= SA_NOCLDSTOP;
141 sigaction(SIGCHLD, &act, NULL);
156 sigaddset(&
Sigset, SIGTERM);
157 sigaddset(&
Sigset, SIGHUP);
158 sigaddset(&
Sigset, SIGTSTP);
159 sigaddset(&
Sigset, SIGINT);
160 sigaddset(&
Sigset, SIGWINCH);
161 sigprocmask(SIG_BLOCK, &
Sigset, 0);
173 sigprocmask(SIG_UNBLOCK, &
Sigset, 0);
191 sa.sa_handler = SIG_IGN;
193 sigemptyset(&sa.sa_mask);
212 sigprocmask(SIG_UNBLOCK, &
SigsetSys, NULL);
222 sa.sa_handler = SIG_DFL;
223 sigemptyset(&sa.sa_mask);
225 sigaction(SIGQUIT, &sa, NULL);
226 sigaction(SIGINT, &sa, NULL);
242 memset(&sa, 0,
sizeof(sa));
246 sa.sa_flags |= SA_RESTART;
248 sigaction(SIGINT, &sa, NULL);
static struct Email * restore(const unsigned char *d)
Restore an Email from data retrieved from the cache.
void(* sig_handler_t)(int sig)
void mutt_sig_init(sig_handler_t sig_fn, sig_handler_t exit_fn, sig_handler_t segv_fn)
Initialise the signal handling.
static bool SysSignalsBlocked
static struct sigaction SysOldQuit
void mutt_sig_empty_handler(int sig)
Dummy signal handler.
static sig_handler_t exit_handler
void mutt_sig_block_system(void)
Block signals before calling exec()
void mutt_sig_block(void)
Block signals during critical operations.
void mutt_sig_unblock(void)
Restore previously blocked signals.
static bool SignalsBlocked
static sig_handler_t sig_handler
static sigset_t SigsetSys
void mutt_sig_unblock_system(bool restore)
Restore previously blocked signals.
static sig_handler_t segv_handler
static struct sigaction SysOldInt
void mutt_sig_allow_interrupt(bool allow)
Allow/disallow Ctrl-C (SIGINT)
void mutt_sig_exit_handler(int sig)
Notify the user and shutdown gracefully.