From f3ef7a61245c5ace26ca13bccf14a28876ea7bfc Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sat, 19 Feb 2011 02:23:29 -0500 Subject: [PATCH] add missing WIFCONTINUED macro and improve WIFSIGNALED --- arch/i386/bits/wexitstatus.h | 3 ++- arch/x86_64/bits/wexitstatus.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/i386/bits/wexitstatus.h b/arch/i386/bits/wexitstatus.h index 34a80238..591d401a 100644 --- a/arch/i386/bits/wexitstatus.h +++ b/arch/i386/bits/wexitstatus.h @@ -5,5 +5,6 @@ #define WCOREDUMP(s) ((s) & 0x80) #define WIFEXITED(s) (!WTERMSIG(s)) #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f) -#define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s)) +#define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0) +#define WIFCONTINUED(s) ((s) == 0xffff) #endif diff --git a/arch/x86_64/bits/wexitstatus.h b/arch/x86_64/bits/wexitstatus.h index 34a80238..591d401a 100644 --- a/arch/x86_64/bits/wexitstatus.h +++ b/arch/x86_64/bits/wexitstatus.h @@ -5,5 +5,6 @@ #define WCOREDUMP(s) ((s) & 0x80) #define WIFEXITED(s) (!WTERMSIG(s)) #define WIFSTOPPED(s) (((s) & 0xff) == 0x7f) -#define WIFSIGNALED(s) (!WIFSTOPPED(s) && !WIFEXITED(s)) +#define WIFSIGNALED(s) (((signed char) (((s) & 0x7f) + 1) >> 1) > 0) +#define WIFCONTINUED(s) ((s) == 0xffff) #endif