diff options
author | herbert <herbert@gondor.apana.org.au> | 2005-02-25 21:15:30 +1100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2005-09-26 18:33:03 +1000 |
commit | 253568ed6557621f24337b775e54a03c7b4300e1 (patch) | |
tree | 12c81e98684bfbe993c970b2b5e5615a39618b61 /src/main.c | |
parent | Changed boolean rootshell into shlvl counter. (diff) | |
download | dash-253568ed6557621f24337b775e54a03c7b4300e1.tar.gz dash-253568ed6557621f24337b775e54a03c7b4300e1.zip |
Catch set -e exits within built-in commands.
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c index 0d69e4f..4902cfa 100644 --- a/src/main.c +++ b/src/main.c @@ -138,13 +138,17 @@ main(int argc, char **argv) status = 2; break; + case EXEXIT: + case EXEVAL: + state = 0; + /* fall through */ default: status = exitstatus; break; } exitstatus = status; - if (e == EXEXIT || state == 0 || iflag == 0 || ! rootshell) + if (state == 0 || iflag == 0 || shlvl) exitshell(); if (e == EXINT |