diff options
author | markm <markm@FreeBSD.org> | 2013-09-06 17:42:12 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2013-09-06 17:42:12 +0000 |
commit | 9d67aa8bffecbac35da57b6e638e6ae76f81a4be (patch) | |
tree | 0090524dd3d818125109031a4cf05e46ec2d2355 /bin/sh/eval.c | |
parent | 2fd409fcd71c91841eee3f09280c21b2031c8450 (diff) | |
parent | d13d69ef17e933f4e8a1be14f0558e25dad171c7 (diff) | |
download | FreeBSD-src-9d67aa8bffecbac35da57b6e638e6ae76f81a4be.zip FreeBSD-src-9d67aa8bffecbac35da57b6e638e6ae76f81a4be.tar.gz |
MFC
Diffstat (limited to 'bin/sh/eval.c')
-rw-r--r-- | bin/sh/eval.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/bin/sh/eval.c b/bin/sh/eval.c index 655bf81..b8f76d5 100644 --- a/bin/sh/eval.c +++ b/bin/sh/eval.c @@ -324,7 +324,7 @@ skipping: if (evalskip == SKIPCONT && --skipcount <= 0) { } if (evalskip == SKIPBREAK && --skipcount <= 0) evalskip = 0; - if (evalskip == SKIPFUNC || evalskip == SKIPFILE) + if (evalskip == SKIPRETURN) status = exitstatus; break; } @@ -1068,7 +1068,7 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd) funcnest--; popredir(); INTON; - if (evalskip == SKIPFUNC) { + if (evalskip == SKIPRETURN) { evalskip = 0; skipcount = 0; } @@ -1305,14 +1305,8 @@ returncmd(int argc, char **argv) { int ret = argc > 1 ? number(argv[1]) : oexitstatus; - if (funcnest) { - evalskip = SKIPFUNC; - skipcount = 1; - } else { - /* skip the rest of the file */ - evalskip = SKIPFILE; - skipcount = 1; - } + evalskip = SKIPRETURN; + skipcount = 1; return ret; } |