diff options
author | Dave Love <fx@gnu.org> | 2000-07-26 11:06:05 +0000 |
---|---|---|
committer | Dave Love <fx@gnu.org> | 2000-07-26 11:06:05 +0000 |
commit | 1f0bb0abf84a7c31908beb4818329a6d496a0344 (patch) | |
tree | 9fa94e0fa49e67842365ab57115be00b52ed1348 /src/syswait.h | |
parent | 48989eadcb40bed1cd406992c14a0e7243915c11 (diff) | |
download | emacs-1f0bb0abf84a7c31908beb4818329a6d496a0344.tar.gz |
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.
Diffstat (limited to 'src/syswait.h')
-rw-r--r-- | src/syswait.h | 77 |
1 files 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 <sys/types.h> -#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 <sys/wait.h> +#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 |