diff options
author | herbert <herbert@gondor.apana.org.au> | 2005-02-25 23:16:05 +1100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2005-09-26 18:33:03 +1000 |
commit | 155580420a6d49927a95ccae97d880f8cbceda16 (patch) | |
tree | 7dccfb482556f09da94a36f74b3fa3cad96db536 /src | |
parent | Eliminated global exerrno. (diff) | |
download | dash-155580420a6d49927a95ccae97d880f8cbceda16.tar.gz dash-155580420a6d49927a95ccae97d880f8cbceda16.zip |
Optimise away status and case statement in main().
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/main.c b/src/main.c index c686a13..6253010 100644 --- a/src/main.c +++ b/src/main.c @@ -123,30 +123,18 @@ main(int argc, char **argv) #endif state = 0; if (unlikely(setjmp(jmploc.loc))) { - int status; int e; int s; reset(); - s = state; e = exception; - switch (exception) { - case EXERROR: - status = 2; - break; - - case EXEXIT: - case EXEVAL: - s = 0; - /* fall through */ - default: - status = exitstatus; - break; - } - exitstatus = status; + if (e == EXERROR) + exitstatus = 2; - if (s == 0 || iflag == 0 || shlvl) + s = state; + if (e == EXEXIT || e == EXEVAL || + s == 0 || iflag == 0 || shlvl) exitshell(); if (e == EXINT |