Lines Matching defs:trap
1 /* exp_trap.c - Expect's trap command
41 static struct trap {
89 struct trap *trap; /* last trap processed */
104 trap = &traps[current_sig];
106 trap->mark = FALSE;
115 if (!trap->action) {
125 if (trap->interp) {
126 /* if trap requested original interp, use it */
127 sig_interp = trap->interp;
136 rc = eval_trap_action(sig_interp,current_sig,trap,code);
398 exp_error(interp,"cannot trap %s",signal_to_string(sig));
403 expDiagLog("trap: setting up signal %d (\"%s\")\r\n",sig,s);
429 exp_error(interp,"usage: trap [command or SIG_DFL or SIG_IGN] {list of signals}");
435 eval_trap_action(interp,sig,trap,oldcode)
438 struct trap *trap;
448 expDiagLogU(trap->action);
451 /* save to prevent user from redefining trap->code while trap */
453 code_flag = trap->code;
468 newcode = Tcl_GlobalEval(interp,trap->action);
472 * allow only OK/RETURN from trap, otherwise complain
476 expDiagLog("return value = %d for trap %s, action ",newcode,signal_to_string(sig));
477 expDiagLogU(trap->action);
496 exp_error(interp,"return value = %d for trap %s, action %s\r\n",newcode,signal_to_string(sig),trap->action);
537 /* it is possible to return in the middle of a trap by using */
545 {"trap", Exp_TrapObjCmd, 0, (ClientData)EXP_SPAWN_ID_BAD, 0},