aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/shell/ash.c b/shell/ash.c
index aaea641a9..f1339cf3c 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -9357,7 +9357,7 @@ evaltree(union node *n, int flags)
9357#endif 9357#endif
9358 case NNOT: 9358 case NNOT:
9359 status = !evaltree(n->nnot.com, EV_TESTED); 9359 status = !evaltree(n->nnot.com, EV_TESTED);
9360 goto setstatus; 9360 break;
9361 case NREDIR: 9361 case NREDIR:
9362 errlinno = lineno = n->nredir.linno; 9362 errlinno = lineno = n->nredir.linno;
9363 expredir(n->nredir.redirect); 9363 expredir(n->nredir.redirect);
@@ -9368,7 +9368,7 @@ evaltree(union node *n, int flags)
9368 } 9368 }
9369 if (n->nredir.redirect) 9369 if (n->nredir.redirect)
9370 popredir(/*drop:*/ 0); 9370 popredir(/*drop:*/ 0);
9371 goto setstatus; 9371 break;
9372 case NCMD: 9372 case NCMD:
9373 evalfn = evalcommand; 9373 evalfn = evalcommand;
9374 checkexit: 9374 checkexit:
@@ -9412,7 +9412,7 @@ evaltree(union node *n, int flags)
9412 evalfn = evaltree; 9412 evalfn = evaltree;
9413 calleval: 9413 calleval:
9414 status = evalfn(n, flags); 9414 status = evalfn(n, flags);
9415 goto setstatus; 9415 break;
9416 } 9416 }
9417 case NIF: 9417 case NIF:
9418 status = evaltree(n->nif.test, EV_TESTED); 9418 status = evaltree(n->nif.test, EV_TESTED);
@@ -9426,17 +9426,18 @@ evaltree(union node *n, int flags)
9426 goto evaln; 9426 goto evaln;
9427 } 9427 }
9428 status = 0; 9428 status = 0;
9429 goto setstatus; 9429 break;
9430 case NDEFUN: 9430 case NDEFUN:
9431 defun(n); 9431 defun(n);
9432 /* Not necessary. To test it: 9432 /* Not necessary. To test it:
9433 * "false; f() { qwerty; }; echo $?" should print 0. 9433 * "false; f() { qwerty; }; echo $?" should print 0.
9434 */ 9434 */
9435 /* status = 0; */ 9435 /* status = 0; */
9436 setstatus:
9437 exitstatus = status;
9438 break; 9436 break;
9439 } 9437 }
9438
9439 exitstatus = status;
9440
9440 out: 9441 out:
9441 /* Order of checks below is important: 9442 /* Order of checks below is important:
9442 * signal handlers trigger before exit caused by "set -e". 9443 * signal handlers trigger before exit caused by "set -e".