From d6a32ddeed914434f5b56b013c9d03b28781d065 Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Sat, 27 Dec 2014 21:55:58 -0800 Subject: 34065: following an "if" condition, do not test lastval for ERR_EXIT until a new command is run Includes unposted regression tests. --- Src/exec.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Src/exec.c') diff --git a/Src/exec.c b/Src/exec.c index 6a7dbb1e1..eaf73df25 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -2632,6 +2632,10 @@ execcmd(Estate state, int input, int output, int how, int last1) } } + /* if we get this far, it is OK to pay attention to lastval again */ + if (noerrexit == 2 && !is_shfunc) + noerrexit = 0; + /* Do prefork substitutions */ esprefork = (assign || isset(MAGICEQUALSUBST)) ? PREFORK_TYPESET : 0; if (args && htok) -- cgit 1.4.1