diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/eval.c | 2 | ||||
-rw-r--r-- | src/eval.h | 1 | ||||
-rw-r--r-- | src/main.c | 2 |
4 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index d3a4acf..dfab8d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-07-09 Herbert Xu <herbert@gondor.apana.org.au> + + * Merge SKIPFUNC/SKIPFILE and only clear SKIPFUNC when leaving dotcmd. + 2011-07-08 Herbert Xu <herbert@gondor.apana.org.au> * Release 0.5.7. diff --git a/src/eval.c b/src/eval.c index 95d30f4..c7358a6 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1039,7 +1039,7 @@ returncmd(int argc, char **argv) * If called outside a function, do what ksh does; * skip the rest of the file. */ - evalskip = funcline ? SKIPFUNC : SKIPFILE; + evalskip = SKIPFUNC; return argv[1] ? number(argv[1]) : exitstatus; } diff --git a/src/eval.h b/src/eval.h index 4e4de30..dc8acd2 100644 --- a/src/eval.h +++ b/src/eval.h @@ -61,4 +61,3 @@ extern int evalskip; #define SKIPBREAK (1 << 0) #define SKIPCONT (1 << 1) #define SKIPFUNC (1 << 2) -#define SKIPFILE (1 << 3) diff --git a/src/main.c b/src/main.c index af987c6..f79ad7d 100644 --- a/src/main.c +++ b/src/main.c @@ -242,7 +242,7 @@ cmdloop(int top) skip = evalskip; if (skip) { - evalskip = 0; + evalskip &= ~SKIPFUNC; break; } } |