diff options
author | Renato Botelho <renato@netgate.com> | 2017-02-23 06:37:07 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2017-02-23 06:37:07 -0300 |
commit | 4ef888db25896b2295f521c736ef04aa2e5e64ec (patch) | |
tree | 3fcc00dda536bd32ae85bc09f21be4081d32bad5 /lib/libedit/sig.c | |
parent | 272ffd7c3e4e5e27910eb918e2e36556f2a8ec3a (diff) | |
parent | af015c5bcac0e333adeec07eff0698bad3b91e95 (diff) | |
download | FreeBSD-src-4ef888db25896b2295f521c736ef04aa2e5e64ec.zip FreeBSD-src-4ef888db25896b2295f521c736ef04aa2e5e64ec.tar.gz |
Merge remote-tracking branch 'origin/stable/11' into devel-11
Diffstat (limited to 'lib/libedit/sig.c')
-rw-r--r-- | lib/libedit/sig.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/libedit/sig.c b/lib/libedit/sig.c index babec69..f37a12e 100644 --- a/lib/libedit/sig.c +++ b/lib/libedit/sig.c @@ -1,4 +1,4 @@ -/* $NetBSD: sig.c,v 1.17 2011/07/28 20:50:55 christos Exp $ */ +/* $NetBSD: sig.c,v 1.24 2016/02/16 19:08:41 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)sig.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: sig.c,v 1.17 2011/07/28 20:50:55 christos Exp $"); +__RCSID("$NetBSD: sig.c,v 1.24 2016/02/16 19:08:41 christos Exp $"); #endif #endif /* not lint && not SCCSID */ #include <sys/cdefs.h> @@ -48,9 +48,12 @@ __FBSDID("$FreeBSD$"); * our policy is to trap all signals, set a good state * and pass the ball to our caller. */ -#include "el.h" +#include <errno.h> #include <stdlib.h> +#include "el.h" +#include "common.h" + private EditLine *sel = NULL; private const int sighdl[] = { @@ -70,9 +73,10 @@ private void sig_handler(int); private void sig_handler(int signo) { - int i; + int i, save_errno; sigset_t nset, oset; + save_errno = errno; (void) sigemptyset(&nset); (void) sigaddset(&nset, signo); (void) sigprocmask(SIG_BLOCK, &nset, &oset); @@ -106,6 +110,7 @@ sig_handler(int signo) sigemptyset(&sel->el_signal->sig_action[i].sa_mask); (void) sigprocmask(SIG_SETMASK, &oset, NULL); (void) kill(0, signo); + errno = save_errno; } |