diff src/process.c @ 96620:3bea8ede5bd0

* syswait.h: Remove old if 0 code. Do not define WAITTYPE, it was always defined as int. * s/netbsd.h (HAVE_UNION_WAIT, HAVE_WAIT_HEADER, WAIT_USE_INT): * s/gnu.h (HAVE_WAIT_HEADER, WAIT_USE_INT, HAVE_UNION_WAIT): * s/gnu-linux.h (HAVE_WAIT_HEADER): * s/freebsd.h (HAVE_WAIT_HEADER): * s/bsd-common.h (HAVE_UNION_WAIT): * s/aix4-2.h (HAVE_WAIT_HEADER): * m/mips.h (HAVE_UNION_WAIT): * s/usg5-4.h (HAVE_WAIT_HEADER, WAITTYPE): Do not define, not used. (COFF, static): Do not define, they are undefined later in the file. * process.c (update_status): Don't use a union. (status_convert): (sigchld_handler): Use int instead of WAITTYPE. * movemail.c (main): Use int instead of WAITTYPE.
author Dan Nicolaescu <dann@ics.uci.edu>
date Sat, 12 Jul 2008 05:31:23 +0000
parents a99299e4d2de
children d45acf0c8d23
line wrap: on
line diff
--- a/src/process.c	Sat Jul 12 03:19:38 2008 +0000
+++ b/src/process.c	Sat Jul 12 05:31:23 2008 +0000
@@ -407,16 +407,14 @@
 /* Compute the Lisp form of the process status, p->status, from
    the numeric status that was returned by `wait'.  */
 
-static Lisp_Object status_convert ();
+static Lisp_Object status_convert (int);
 
 static void
 update_status (p)
      struct Lisp_Process *p;
 {
-  union { int i; WAITTYPE wt; } u;
   eassert (p->raw_status_new);
-  u.i = p->raw_status;
-  p->status = status_convert (u.wt);
+  p->status = status_convert (p->raw_status);
   p->raw_status_new = 0;
 }
 
@@ -424,8 +422,7 @@
     the list that we use internally.  */
 
 static Lisp_Object
-status_convert (w)
-     WAITTYPE w;
+status_convert (int w)
 {
   if (WIFSTOPPED (w))
     return Fcons (Qstop, Fcons (make_number (WSTOPSIG (w)), Qnil));
@@ -6698,7 +6695,7 @@
   while (1)
     {
       pid_t pid;
-      WAITTYPE w;
+      int w;
       Lisp_Object tail;
 
 #ifdef WNOHANG
@@ -6770,12 +6767,10 @@
       /* Change the status of the process that was found.  */
       if (p != 0)
 	{
-	  union { int i; WAITTYPE wt; } u;
 	  int clear_desc_flag = 0;
 
 	  p->tick = ++process_tick;
-	  u.wt = w;
-	  p->raw_status = u.i;
+	  p->raw_status = w;
 	  p->raw_status_new = 1;
 
 	  /* If process has terminated, stop waiting for its output.  */