diff src/syswait.h @ 155:43dd3413c7c7 r20-3b4

Import from CVS: tag r20-3b4
author cvs
date Mon, 13 Aug 2007 09:39:39 +0200
parents 376386a54a3c
children 15872534500d
line wrap: on
line diff
--- a/src/syswait.h	Mon Aug 13 09:38:27 2007 +0200
+++ b/src/syswait.h	Mon Aug 13 09:39:39 2007 +0200
@@ -19,110 +19,32 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-/* Synched up with: FSF 19.30. */
-
-/* Cleaned up by Ben Wing. */
-
-/* Define the structure that the wait system call stores.
-   On many systems, there is a structure defined for this.
-   But on vanilla-ish USG systems there is not.
+/* Cleanup by Martin Buchholz for Autoconf 2 (see the Autoconf Manual) */
 
-   NOTE: POSIX specifies that int, rather than union wait,
-   be used.  BSD systems based on BSD 4.3+ or newer generally
-   have int, but those based on BSD 4.3 or older have union wait.
- */
-
-#ifndef VMS
-
-#  ifdef HAVE_SYS_WAIT_H
-#    include <sys/wait.h>
-#  endif
-
-#  if !defined (HAVE_UNION_WAIT) /* the POSIX / SYSV way */
+#include <sys/types.h>
 
-#    define WAITTYPE int
-#    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
-#      ifdef WEXITSTATUS
-#        define WRETCODE(w) WEXITSTATUS (w)
-#      else
-#        define WRETCODE(w) ((w) >> 8)
-#      endif
-#    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
-
-#  else /* the older BSD way */
-
-#    define WAITTYPE union wait
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
 
-#    ifndef WRETCODE
-#      ifdef WEXITSTATUS
-#        define WRETCODE(w) WEXITSTATUS(w)
-#      else
-#        define WRETCODE(w) w.w_retcode
-#      endif
-#    endif
-
-#    undef WCOREDUMP		/* Later BSDs define this name differently.  */
-#    define WCOREDUMP(w) w.w_coredump
-
-#    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 */
-
-#    ifndef WTERMSIG
-#      define WTERMSIG(w) w.w_termsig
-#    endif
-#    ifndef WSTOPSIG
-#      define WSTOPSIG(w) w.w_stopsig
-#    endif
-#    ifndef WIFSTOPPED
-#      define WIFSTOPPED(w) (WTERMSIG (w) == 0177)
-#    endif
-#    ifndef WIFSIGNALED
-#      define WIFSIGNALED(w) (WTERMSIG (w) != 0177 && (WSTOPSIG (w)) == 0)
-#    endif
-#    ifndef WIFEXITED
-#      define WIFEXITED(w) (WTERMSIG (w) == 0)
-#    endif
-
-#  endif /* HAVE_UNION_WAIT */
-
-#else /* VMS */
-
-#  define WAITTYPE int
-#  define WIFSTOPPED(w) 0
-#  define WIFSIGNALED(w) 0
-#  define WIFEXITED(w) ((w) != -1)
-#  define WRETCODE(w) (w)
-#  define WSTOPSIG(w) (w)
-#  define WCOREDUMP(w) 0
-#  define WTERMSIG(w) (w)
-#  include <ssdef.h>
-#  include <iodef.h>
-#  include <clidef.h>
-#  include "vmsproc.h"
-
-#endif /* VMS */
+#ifndef WEXITSTATUS
+#define WEXITSTATUS(s) ((s) >> 8)
+#endif
+#ifndef WIFEXITED
+#define WIFEXITED(s) (((s) & 0xff) == 0)
+#endif
+#ifndef WIFSTOPPED
+#define WIFSTOPPED(s) (((s) & 0xff) == 0x7f)
+#endif
+#ifndef WIFSIGNALED
+#define WIFSIGNALED(s) (((unsigned int)((s)-1) & 0xffff) < 0xff)
+#endif
+#ifndef WCOREDUMP
+#define WCOREDUMP(s) ((s) & 0200)
+#endif
+#ifndef WTERMSIG
+#define WTERMSIG(s) ((s) & 0x7f)
+#endif
+#ifndef WSTOPSIG
+#define WSTOPSIG(s) ((s) >> 8)
+#endif