From 1f0bb0abf84a7c31908beb4818329a6d496a0344 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Wed, 26 Jul 2000 11:06:05 +0000 Subject: [PATCH] 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. --- src/syswait.h | 77 +++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/src/syswait.h b/src/syswait.h index d3edfdf0768..692c202da1b 100644 --- a/src/syswait.h +++ b/src/syswait.h @@ -32,52 +32,49 @@ Boston, MA 02111-1307, USA. */ below. */ #if 1 -#undef WAITTYPE -#define WAITTYPE int -#define WRETCODE(w) WEXITSTATUS (w) - #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 +#else /* !HAVE_SYS_WAIT_H */ + +/* Note that sys/wait.h may still be included by stdlib.h or something + according to XPG. */ + +#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 -#undef WIFEXITED -#endif /* HPUX || convex */ +#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 */ -#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 WAITTYPE +#define WAITTYPE int +#undef WRETCODE +#define WRETCODE(status) WEXITSTATUS (status) #else /* !1 */ @@ -99,7 +96,7 @@ Boston, MA 02111-1307, USA. */ #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 -- 2.39.2