diff options
author | Chet Ramey <chet.ramey@case.edu> | 2011-11-23 19:12:30 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2011-11-23 19:12:30 -0500 |
commit | bcd7f75a2bc2f7c67c9cd6899ff546afa45cbba4 (patch) | |
tree | 71f09c9e7e2a9be3c3aa79e31cb48d7069d8a979 /signals.c | |
parent | 753c336c548b9a1358058751c6288b6e31458d89 (diff) | |
download | readline-bcd7f75a2bc2f7c67c9cd6899ff546afa45cbba4.tar.gz |
Readline-5.0 import
Diffstat (limited to 'signals.c')
-rw-r--r-- | signals.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -73,6 +73,10 @@ typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt # define sigemptyset(m) #endif /* !HAVE_POSIX_SIGNALS */ +#ifndef SA_RESTART +# define SA_RESTART 0 +#endif + static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *)); static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *)); @@ -85,6 +89,8 @@ int rl_catch_signals = 1; /* If non-zero, readline will install a signal handler for SIGWINCH. */ #ifdef SIGWINCH int rl_catch_sigwinch = 1; +#else +int rl_catch_sigwinch = 0; /* for the readline state struct in readline.c */ #endif static int signals_set_flag; @@ -233,7 +239,7 @@ rl_set_sighandler (sig, handler, ohandler) struct sigaction act; act.sa_handler = handler; - act.sa_flags = 0; /* XXX - should we set SA_RESTART for SIGWINCH? */ + act.sa_flags = (sig == SIGWINCH) ? SA_RESTART : 0; sigemptyset (&act.sa_mask); sigemptyset (&ohandler->sa_mask); sigaction (sig, &act, &old_handler); |