aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2018-05-19 02:39:38 +0800
committerBen Hutchings <ben@decadent.org.uk>2020-03-28 21:42:55 +0000
commitbb0a62dfa61fec6497f1409c3cdfe8ceec94f1fa (patch)
tree6bf32390a93abd8c4be7c4938a510898c469fdbf
parent2cb3d00d728a1ebfe87818161b7a13dc2b6598ed (diff)
downloadklibc-bb0a62dfa61fec6497f1409c3cdfe8ceec94f1fa.tar.gz
[klibc] dash: main: Only set savestatus in exitcmd
[ dash commit d17dacd0f0499a8c77d810e211e8ff96b8898c48 ] Currently exitcmd sets exitstatus and then savestatus if the latter was previously set. In fact, as exitcmd always raises an exception and will either end up in the setjmp call in main() or exitshell(), where exitstatus is always replaced by savestatus if set, we only need to set savestatus. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--usr/dash/main.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/usr/dash/main.c b/usr/dash/main.c
index fcd3e7d208181..9f0371733aeed 100644
--- a/usr/dash/main.c
+++ b/usr/dash/main.c
@@ -339,13 +339,8 @@ exitcmd(int argc, char **argv)
if (stoppedjobs())
return 0;
- if (argc > 1) {
- int status = number(argv[1]);
-
- exitstatus = status;
- if (savestatus >= 0)
- savestatus = status;
- }
+ if (argc > 1)
+ savestatus = number(argv[1]);
exraise(EXEXIT);
/* NOTREACHED */