add missing WIFCONTINUED macro and improve WIFSIGNALED
authorRich Felker <dalias@aerifal.cx>
Sat, 19 Feb 2011 07:23:29 +0000 (02:23 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 19 Feb 2011 07:23:29 +0000 (02:23 -0500)
arch/i386/bits/wexitstatus.h
arch/x86_64/bits/wexitstatus.h

index 34a8023..591d401 100644 (file)
@@ -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
index 34a8023..591d401 100644 (file)
@@ -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