act.sa_handler = mutt_exit_handler;
act.sa_handler = exit_handler;
void mutt_signal_init (void){  struct sigaction act;  memset (&act, 0, sizeof (struct sigaction));  act.sa_handler = SIG_IGN;  sigaction (SIGPIPE, &act, NULL);  act.sa_handler = mutt_exit_handler;  sigaction (SIGTERM, &act, NULL);  sigaction (SIGHUP, &act, NULL);  act.sa_handler = sighandler;#ifdef SA_INTERRUPT  /* POSIX.1 uses SA_RESTART, but SunOS 4.x uses this instead */  act.sa_flags = SA_INTERRUPT;#endif  sigaction (SIGCONT, &act, NULL);  sigaction (SIGINT, &act, NULL);  /* SIGTSTP is the one signal in which we want to restart a system call if it   * was interrupted in progress.  This is especially important if we are in   * the middle of a system() call, like if the user is editing a message.   * Otherwise, the system() will exit when SIGCONT is received and Mutt will   * resume even though the subprocess may not be finished.   */#ifdef SA_RESTART  act.sa_flags = SA_RESTART;#else  act.sa_flags = 0;#endif  sigaction (SIGTSTP, &act, NULL);#if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM)  sigaction (SIGWINCH, &act, NULL);#endif  /* we don't want to mess with stopped children */  act.sa_flags |= SA_NOCLDSTOP;  sigaction (SIGCHLD, &act, NULL);#ifdef USE_SLANG_CURSES  /* This bit of code is required because of the implementation of   * SLcurses_wgetch().  If a signal is received (like SIGWINCH) when we   * are in blocking mode, SLsys_getkey() will not return an error unless   * a handler function is defined and it returns -1.  This is needed so   * that if the user resizes the screen while at a prompt, it will just   * abort and go back to the main-menu.   */  SLang_getkey_intr_hook = mutt_intr_hook;#endif}