From 7f90d25a4c4214a53d6a1a831d166c11467b992f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Tue, 6 Aug 1996 13:34:28 +0200 Subject: [PATCH] now possible to IGNore signals Rev: src/lpc_signal.c:1.12 --- src/lpc_signal.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/lpc_signal.c b/src/lpc_signal.c index 97d7234a37..a2659bc411 100644 --- a/src/lpc_signal.c +++ b/src/lpc_signal.c @@ -296,12 +296,6 @@ static void f_signal(int args) if(args < 1) error("Too few arguments to signal()\n"); - if(args == 1) - { - push_int(0); - args++; - } - if(sp[-args].type != T_INT) { error("Bad argument 1 to signal()\n"); @@ -313,9 +307,11 @@ static void f_signal(int args) error("Signal out of range.\n"); } - assign_svalue(signal_callbacks + signum, sp+1-args); - if(IS_ZERO(sp+1-args)) + if(args == 1) { + push_int(0); + args++; + switch(signum) { case SIGCHLD: @@ -329,9 +325,15 @@ static void f_signal(int args) default: func=(sigfunctype) SIG_DFL; } - }else{ - func=receive_signal; + } else { + if(IS_ZERO(sp+1-args)) + { + func=(sigfunctype) SIG_IGN; + }else{ + func=receive_signal; + } } + assign_svalue(signal_callbacks + signum, sp+1-args); my_signal(signum, func); pop_n_elems(args); } -- GitLab