From 4ccddc8fb37b7f585c2d62f6e61ad17295399aff Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 14 Feb 2020 17:27:18 +0100 Subject: ash: [BUILTIN] Exit without arguments in a trap should use status outside traps Upstream commit: Date: Mon Oct 6 10:39:47 2014 +0800 [BUILTIN] Exit without arguments in a trap should use status outside traps POSIX now requires that exit without arguments in a trap should return the last command status prior to executing traps. This patch implements this behaviour. Signed-off-by: Herbert Xu Signed-off-by: Denys Vlasenko --- shell/ash_test/ash-misc/exitcode_trap1.right | 2 ++ shell/ash_test/ash-misc/exitcode_trap1.tests | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 shell/ash_test/ash-misc/exitcode_trap1.right create mode 100755 shell/ash_test/ash-misc/exitcode_trap1.tests (limited to 'shell/ash_test') diff --git a/shell/ash_test/ash-misc/exitcode_trap1.right b/shell/ash_test/ash-misc/exitcode_trap1.right new file mode 100644 index 000000000..5f76f68da --- /dev/null +++ b/shell/ash_test/ash-misc/exitcode_trap1.right @@ -0,0 +1,2 @@ +Trapped +One:1 diff --git a/shell/ash_test/ash-misc/exitcode_trap1.tests b/shell/ash_test/ash-misc/exitcode_trap1.tests new file mode 100755 index 000000000..c35b6b391 --- /dev/null +++ b/shell/ash_test/ash-misc/exitcode_trap1.tests @@ -0,0 +1,6 @@ +# "exit" in trap should not use last command's exitcode, +# but exitcode on entering the trap. +(trap "echo Trapped; exit" EXIT + (exit 1) +) +echo One:$? -- cgit v1.2.3