# HG changeset patch # User Dave Love # Date 964609565 0 # Node ID d57d77adc6dafae9826989c5d39e38967af3b130 # Parent 132287a7c6d3493c34a5272d62a9152c6dd90b7b Move some definitions. (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex. [!HAVE_SYS_WAIT_H]: Define things unconditionally. More perspicuous definitions. (WTERMSIG): Fix bit pattern used. diff -r 132287a7c6d3 -r d57d77adc6da src/syswait.h --- a/src/syswait.h Wed Jul 26 10:51:09 2000 +0000 +++ b/src/syswait.h Wed Jul 26 11:06:05 2000 +0000 @@ -32,52 +32,49 @@ below. */ #if 1 -#undef WAITTYPE -#define WAITTYPE int -#define WRETCODE(w) WEXITSTATUS (w) +#include -#include -#if HAVE_SYS_WAIT_H +/* Old code included a comment that HPUX version 7 has broken + definitions of some of the macros and `the convex' does too. + HAVE_SYS_WAIT_H probably won't be defined on them if they still get + used, but for safety... -- fx */ +#if (defined (HPUX) && !defined (HPUX8)) || defined (convex) +#undef HAVE_SYS_WAIT_H +#endif + +#if defined HAVE_SYS_WAIT_H /* We have sys/wait.h with POSIXoid + definitions. */ + #include +#ifndef WCOREDUMP /* not POSIX */ +#define WCOREDUMP(status) ((status) & 0x80) #endif -#if defined (HPUX) || defined (convex) -/* HPUX version 7 has broken definitions of these. */ -/* pvogel@convex.com says the convex does too. */ -#undef WTERMSIG -#undef WSTOPSIG -#undef WIFSTOPPED -#undef WIFSIGNALED -#undef WIFEXITED -#endif /* HPUX || convex */ +#else /* !HAVE_SYS_WAIT_H */ + +/* Note that sys/wait.h may still be included by stdlib.h or something + according to XPG. */ -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) -#endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif -#ifndef WIFSTOPPED -#define WIFSTOPPED(w) ((w&0377) == 0177) -#endif -#ifndef WIFSIGNALED -#define WIFSIGNALED(w) ((w&0377) != 0177 && (w&~0377) == 0) -#endif -#ifndef WIFEXITED -#define WIFEXITED(w) ((w&0377) == 0) -#endif -#ifndef WRETCODE -#define WRETCODE(w) (w >> 8) -#endif -#ifndef WSTOPSIG -#define WSTOPSIG(w) (w >> 8) -#endif -#ifndef WTERMSIG -#define WTERMSIG(w) (w & 0377) -#endif -#ifndef WCOREDUMP -#define WCOREDUMP(w) ((w&0200) != 0) -#endif +#undef WEXITSTATUS +#define WEXITSTATUS(status) (((status) & 0xff00) >> 8) +#undef WIFEXITED +#define WIFEXITED(status) (WTERMSIG(status) == 0) +#undef WIFSTOPPED +#define WIFSTOPPED(status) (((status) & 0xff) == 0x7f) +#undef WIFSIGNALED +#define WIFSIGNALED(status) (!WIFSTOPPED(status) && !WIFEXITED(status)) +#undef WSTOPSIG +#define WSTOPSIG(status) WEXITSTATUS(status) +#undef WTERMSIG +#define WTERMSIG(status) ((status) & 0x7f) +#undef WCOREDUMP +#define WCOREDUMP(status) ((status) & 0x80) +#endif /* HAVE_SYS_WAIT_H */ + +#undef WAITTYPE +#define WAITTYPE int +#undef WRETCODE +#define WRETCODE(status) WEXITSTATUS (status) #else /* !1 */ @@ -99,7 +96,7 @@ #define WIFEXITED(w) ((w&0377) == 0) #define WRETCODE(w) (w >> 8) #define WSTOPSIG(w) (w >> 8) -#define WTERMSIG(w) (w & 0377) +#define WTERMSIG(w) (w & 0177) #ifndef WCOREDUMP #define WCOREDUMP(w) ((w&0200) != 0) #endif