From 86d89c929013e64bf4e4b28af2facd549c3bfaba Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Tue, 29 Mar 2011 21:30:11 +0200 Subject: Fix next and exit from functions. --- eval.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index a9928735..7c8f9b0f 100644 --- a/eval.c +++ b/eval.c @@ -2507,6 +2507,11 @@ func_call: JUMPTO(pc->target_endfile); /* endfile block */ case Op_K_exit: + if (currule == END) + ni = pc->target_atexit; + else + ni = pc->target_end; + exiting = TRUE; POP_NUMBER(x1); exit_val = (int) x1; @@ -2522,7 +2527,7 @@ func_call: * or to Op_atexit */ unwind_stack(stack_bottom); - JUMPTO(pc->target_jmp); + JUMPTO(ni); case Op_K_next: if (currule != Rule) -- cgit v1.2.3