summaryrefslogtreecommitdiffstats
path: root/bin/sh/eval.c
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2013-09-06 17:42:12 +0000
committermarkm <markm@FreeBSD.org>2013-09-06 17:42:12 +0000
commit9d67aa8bffecbac35da57b6e638e6ae76f81a4be (patch)
tree0090524dd3d818125109031a4cf05e46ec2d2355 /bin/sh/eval.c
parent2fd409fcd71c91841eee3f09280c21b2031c8450 (diff)
parentd13d69ef17e933f4e8a1be14f0558e25dad171c7 (diff)
downloadFreeBSD-src-9d67aa8bffecbac35da57b6e638e6ae76f81a4be.zip
FreeBSD-src-9d67aa8bffecbac35da57b6e638e6ae76f81a4be.tar.gz
MFC
Diffstat (limited to 'bin/sh/eval.c')
-rw-r--r--bin/sh/eval.c14
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;
}
OpenPOWER on IntegriCloud