From 70c16dd30d4cf824aa895e9f6c095fec741c65a8 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Mon, 6 Oct 2014 21:51:26 +0800 Subject: [BUILTIN] Return without arguments in a trap should use status outside traps POSIX now requires that return without arguments in a trap should return the last command status prior to executing traps. This patch implements this behaviour. Incidentally this also changes the behaviour of return without arguments in a loop conditional to use the last exit status in the body as opposed to the last command in the conditional when there is one. Signed-off-by: Herbert Xu --- src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 29a258d..00c5e00 100644 --- a/src/main.c +++ b/src/main.c @@ -242,7 +242,7 @@ cmdloop(int top) skip = evalskip; if (skip) { - evalskip &= ~SKIPFUNC; + evalskip &= ~(SKIPFUNC | SKIPFUNCDEF); break; } } -- cgit 1.4.1