Subject: [PATCH] t0005: work around strange $? in ksh when program terminated by a signal

From: Johannes Sixt <[email-masked]>
Date: Fri, 09 Jul 2010 09:05:16 +0200

From: Johannes Sixt <[email-masked]>

ksh is known to report $? of programs that terminated by a signal as
256 + signal number instead of 128 + signal number like other POSIX
compliant shells. (ksh's behavior is still POSIX compliant in this regard.)

Signed-off-by: Johannes Sixt <[email-masked]>
---
Am 7/9/2010 5:08, schrieb Jonathan Nieder:
> I can’t seem to get test-sigchain to run with ksh93 on linux:
> 
>  $ ksh
>  
>  ksh>$ ../bin-wrappers/test-sigchain 
>  three
>  two
>  one
>  Terminated
>  ksh>$ echo $?
>  271

ksh is not wrong, just strange. See http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08_02 (last sentence).

 -- Hannes

 t/t0005-signals.sh |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/t/t0005-signals.sh b/t/t0005-signals.sh
index 09f855a..93e58c0 100755
--- a/t/t0005-signals.sh
+++ b/t/t0005-signals.sh
@@ -13,6 +13,7 @@ test_expect_success 'sigchain works' '
 	test-sigchain >actual
 	case "$?" in
 	143) true ;; # POSIX w/ SIGTERM=15
+	271) true ;; # ksh w/ SIGTERM=15
 	  3) true ;; # Windows
 	  *) false ;;
 	esac &&
-- 
1.7.1.585.gf3448