From 9d9c3fe8ac6486f06c4ef7ecc3fe78d5413ab07c Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 23 Apr 2023 21:14:07 +0300 Subject: [PATCH] =?UTF-8?q?return=20signal=20code+128=20in=20exit=20code?= =?UTF-8?q?=20on=20signaling=20=E2=80=A2SH=20invocation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/sysfn.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index 54d50eca..a4a53615 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -1049,7 +1049,10 @@ B sh_c2(B t, B w, B x) { s_outObj = utf8Decode((char*)c8any_ptr(s_outRaw), IA(s_outRaw)); dec(s_outRaw); s_errObj = utf8Decode((char*)c8any_ptr(s_errRaw), IA(s_errRaw)); dec(s_errRaw); } - return m_hVec3(m_i32(WEXITSTATUS(status)), s_outObj, s_errObj); + int code = WIFEXITED(status)? WEXITSTATUS(status) + : WIFSIGNALED(status)? WTERMSIG(status)+128 + : -1; + return m_hVec3(m_i32(code), s_outObj, s_errObj); } #else #define HAS_SH 0