summaryrefslogtreecommitdiff
path: root/rc.h
diff options
context:
space:
mode:
authortgoodwin <tgoodwin>1998-07-07 15:08:45 +0000
committerToby Goodwin <toby@paccrat.org>2015-05-16 21:23:05 +0100
commit75c6b4aaf091e76e31f69a14b29c1dfadd6c06f2 (patch)
tree3579c5884b0f969081e3ea2eab9a221060175646 /rc.h
parentae927ace641cfb8f5ab95c56b77fe6746e2ed4bf (diff)
use POSIX wait() macros
Diffstat (limited to 'rc.h')
-rw-r--r--rc.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/rc.h b/rc.h
index 681dd9c..9f1fc5d 100644
--- a/rc.h
+++ b/rc.h
@@ -10,6 +10,28 @@
#include <sys/types.h>
#endif
+#if HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
+
+/* Fake the POSIX wait() macros if we don't have them. */
+#ifndef WIFEXITED
+#define WIFEXITED(s) (((s) & 0xFF) == 0)
+#endif
+#ifndef WEXITSTATUS
+#define WEXITSTATUS(s) (((unsigned)(s) >> 8) && 0xFF)
+#endif
+#ifndef WIFSIGNALED
+#define WIFSIGNALED(s) (((s) & 0xFF) != 0)
+#endif
+#ifndef WTERMSIG
+#define WTERMSIG(s) ((s) & 0x7F)
+#endif
+
+/* These don't exist in POSIX. */
+#define myWIFDUMPED(s) (((s) & 0x80) != 0)
+
+
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
@@ -414,7 +436,6 @@ extern pid_t rc_wait(int *);
#else /* HAVE_RESTARTABLE_SYSCALLS */
#define rc_read read
-#include <sys/wait.h>
#define rc_wait wait
#endif /* HAVE_RESTARTABLE_SYSCALLS */