aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/rc/trap.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cmd/rc/trap.c')
-rw-r--r--sys/cmd/rc/trap.c37
1 files changed, 0 insertions, 37 deletions
diff --git a/sys/cmd/rc/trap.c b/sys/cmd/rc/trap.c
deleted file mode 100644
index ef46143..0000000
--- a/sys/cmd/rc/trap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "rc.h"
-#include "exec.h"
-#include "fns.h"
-#include "io.h"
-extern char *Signame[];
-
-void
-dotrap(void)
-{
- int i;
- struct Var *trapreq;
- struct Word *starval;
- starval = vlook("*")->val;
- while(ntrap) for(i = 0;i!=NSIG;i++) while(trap[i]){
- --trap[i];
- --ntrap;
- if(getpid()!=mypid) Exit(getstatus());
- trapreq = vlook(Signame[i]);
- if(trapreq->fn){
- start(trapreq->fn, trapreq->pc, (struct Var *)0);
- runq->local = newvar(strdup("*"), runq->local);
- runq->local->val = copywords(starval, (struct Word *)0);
- runq->local->changed = 1;
- runq->redir = runq->startredir = 0;
- }
- else if(i==SIGINT || i==SIGQUIT){
- /*
- * run the stack down until we uncover the
- * command reading loop. Xreturn will exit
- * if there is none (i.e. if this is not
- * an interactive rc.)
- */
- while(!runq->iflag) Xreturn();
- }
- else Exit(getstatus());
- }
-}