]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - sail/pl_1.c
better handle ^d in getinp(), so we dont loop endlessly.
[bsdgames-darwin.git] / sail / pl_1.c
index 1ce113ecf058b3cd9b01704a336d6fea029428b1..f80f50242e089e3960ce5aaeb356a7a33ef78c90 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: pl_1.c,v 1.12 2001/01/04 03:51:24 jwise Exp $  */
+/*     $NetBSD: pl_1.c,v 1.18 2004/01/27 20:23:36 jsm Exp $    */
 
 /*
  * Copyright (c) 1983, 1993
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
@@ -38,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)pl_1.c     8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: pl_1.c,v 1.12 2001/01/04 03:51:24 jwise Exp $");
+__RCSID("$NetBSD: pl_1.c,v 1.18 2004/01/27 20:23:36 jsm Exp $");
 #endif
 #endif /* not lint */
 
@@ -46,13 +42,11 @@ __RCSID("$NetBSD: pl_1.c,v 1.12 2001/01/04 03:51:24 jwise Exp $");
 #include <sys/wait.h>
 #include <signal.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
+#include "extern.h"
 #include "player.h"
 
-void   leave(int);
-void   choke(int);
-void   child(int);
-
 /*
  * If we get here before a ship is chosen, then ms == 0 and
  * we don't want to update the score file, or do any Write's either.
@@ -135,12 +129,12 @@ choke(int n __attribute__((__unused__)))
 void
 child(int n __attribute__((__unused__)))
 {
-       union wait status;
+       int status;
        int pid;
 
        signal(SIGCHLD, SIG_IGN);
        do {
-               pid = wait3((int *)&status, WNOHANG, (struct rusage *)0);
+               pid = wait3(&status, WNOHANG, (struct rusage *)0);
                if (pid < 0 || (pid > 0 && !WIFSTOPPED(status)))
                        hasdriver = 0;
        } while (pid > 0);