From: ceriel Date: Wed, 29 Aug 1990 11:44:33 +0000 (+0000) Subject: only deal with signals that are not ignored X-Git-Tag: release-5-5~1577 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=1cb247fa391f60f35a33a9da50fa4dbad665696b;p=ack.git only deal with signals that are not ignored --- diff --git a/lang/m2/libm2/sigtrp.c b/lang/m2/libm2/sigtrp.c index 59a600667..c01612555 100644 --- a/lang/m2/libm2/sigtrp.c +++ b/lang/m2/libm2/sigtrp.c @@ -50,6 +50,7 @@ sigtrp(trapno, signo) */ extern int errno; int (*ctch)() = __ctchsig; + int (*oldctch)(); int oldtrap; if (signo <= 0 || signo >= sizeof(__traps)/sizeof(__traps[0])) { @@ -70,10 +71,13 @@ sigtrp(trapno, signo) oldtrap = __traps[signo]; - if (signal(signo, ctch) == (int (*)())-1) /* errno set by signal */ + if ((oldctch = signal(signo, ctch)) == (int (*)())-1) /* errno set by signal */ return -1; - __traps[signo] = trapno; + else if (oldctch == SIG_IGN) { + signal(signo, SIG_IGN); + } + else __traps[signo] = trapno; return oldtrap; }