--- gforth/engine/signals.c 2000/07/20 13:29:43 1.5 +++ gforth/engine/signals.c 2000/09/23 15:47:08 1.11 @@ -1,6 +1,6 @@ /* signal handling - Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. + Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc. This file is part of Gforth. @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. */ @@ -47,6 +47,11 @@ UCell cols=DEFAULTCOLS; UCell rows=DEFAULTROWS; +#ifndef SA_NODEFER +#define SA_NODEFER 0 +/* systems that don't have SA_NODEFER hopefully don't block anyway */ +#endif + #ifdef SA_SIGINFO void install_signal_handler(int sig, void (*handler)(int, siginfo_t *, void *)) /* installs three-argument signal handler for sig */ @@ -55,7 +60,7 @@ void install_signal_handler(int sig, voi action.sa_sigaction=handler; sigemptyset(&action.sa_mask); - action.sa_flags=SA_RESTART|SA_SIGINFO; /* pass siginfo */ + action.sa_flags=SA_RESTART|SA_NODEFER|SA_SIGINFO; /* pass siginfo */ sigaction(sig, &action, NULL); } #endif @@ -158,7 +163,7 @@ static void segv_handler(int sig, siginf #endif /* defined(SA_SIGINFO) */ #ifdef SIGCONT -static void termprep (int sig) +static void termprep(int sig) { bsd_signal(sig,termprep); terminal_prepped=0;