diff options
Diffstat (limited to 'expr.c')
-rw-r--r-- | expr.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -286,6 +286,8 @@ expr_unwind () free (expr_stack[expr_depth]); } free (expr_stack[expr_depth]); /* free the allocated EXPR_CONTEXT */ + + noeval = 0; /* XXX */ } static void @@ -319,6 +321,7 @@ evalexp (expr, validp) procenv_t oevalbuf; val = 0; + noeval = 0; FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf)); @@ -517,7 +520,8 @@ expcond () set_noeval = 1; noeval++; } - val2 = explor (); + + val2 = expcond (); if (set_noeval) noeval--; rval = cval ? val1 : val2; @@ -929,6 +933,7 @@ expr_streval (tok, e) if (interactive_shell) { expr_unwind (); + top_level_cleanup (); jump_to_top_level (DISCARD); } else |