diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-03-29 21:30:11 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-03-29 21:30:11 +0200 |
commit | 86d89c929013e64bf4e4b28af2facd549c3bfaba (patch) | |
tree | c3647d3c41cf3f363288d878269073aff4124cca /eval.c | |
parent | 2400cc5143383a881356a9f55e93b60037d851e5 (diff) | |
download | egawk-86d89c929013e64bf4e4b28af2facd549c3bfaba.tar.gz egawk-86d89c929013e64bf4e4b28af2facd549c3bfaba.tar.bz2 egawk-86d89c929013e64bf4e4b28af2facd549c3bfaba.zip |
Fix next and exit from functions.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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) |