summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorstefanf <stefanf@FreeBSD.org>2008-11-23 20:23:57 +0000
committerstefanf <stefanf@FreeBSD.org>2008-11-23 20:23:57 +0000
commitfd291bd5c3f1eba1fe1eb9a64380dedaffafb8fe (patch)
tree9412a1c9c850edf636d09dc5bc240acc286be413 /bin
parent954a204664fb098a6a9c46c96fa9fdcfbe71fe0f (diff)
downloadFreeBSD-src-fd291bd5c3f1eba1fe1eb9a64380dedaffafb8fe.zip
FreeBSD-src-fd291bd5c3f1eba1fe1eb9a64380dedaffafb8fe.tar.gz
Fix $? at the first command of a function. The previous exit status was saved
twice and thus lost.
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/bin/sh/eval.c b/bin/sh/eval.c
index e1a3ce7..f6b702b 100644
--- a/bin/sh/eval.c
+++ b/bin/sh/eval.c
@@ -791,6 +791,7 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
for (sp = varlist.list ; sp ; sp = sp->next)
mklocal(sp->text);
funcnest++;
+ exitstatus = oexitstatus;
if (flags & EV_TESTED)
evaltree(cmdentry.u.func, EV_TESTED);
else
OpenPOWER on IntegriCloud