diff options
author | ache <ache@FreeBSD.org> | 2004-10-18 07:02:42 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2004-10-18 07:02:42 +0000 |
commit | 0a8076ac56fc245cdfb48a1ac83798a3d6086c30 (patch) | |
tree | f78c1227a8143a263e4974d6bf25cf0ccde0e716 /contrib/libreadline/signals.c | |
parent | 001407b3a64c7fac1489a2ad6eeb2d23254b3e19 (diff) | |
download | FreeBSD-src-0a8076ac56fc245cdfb48a1ac83798a3d6086c30.zip FreeBSD-src-0a8076ac56fc245cdfb48a1ac83798a3d6086c30.tar.gz |
Virgin import of GNU Readline 5.0
Diffstat (limited to 'contrib/libreadline/signals.c')
-rw-r--r-- | contrib/libreadline/signals.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/contrib/libreadline/signals.c b/contrib/libreadline/signals.c index 0a1468b..8e9c0ae 100644 --- a/contrib/libreadline/signals.c +++ b/contrib/libreadline/signals.c @@ -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); |