diff options
author | stefanf <stefanf@FreeBSD.org> | 2008-11-23 20:23:57 +0000 |
---|---|---|
committer | stefanf <stefanf@FreeBSD.org> | 2008-11-23 20:23:57 +0000 |
commit | fd291bd5c3f1eba1fe1eb9a64380dedaffafb8fe (patch) | |
tree | 9412a1c9c850edf636d09dc5bc240acc286be413 /bin/sh | |
parent | 954a204664fb098a6a9c46c96fa9fdcfbe71fe0f (diff) | |
download | FreeBSD-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/sh')
-rw-r--r-- | bin/sh/eval.c | 1 |
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 |