killpg.c.patch   [plain text]


--- killpg.c.orig	2005-01-26 12:24:56.000000000 -0800
+++ killpg.c	2005-01-26 12:23:37.000000000 -0800
@@ -41,6 +41,16 @@
 #include <signal.h>
 #include <errno.h>
 
+int __kill(pid_t pid, int sig, int posix);
+
+#if __DARWIN_UNIX03
+#define	_PID1ERR	EPERM
+#define	_POSIXKILL	1
+#else	/* !__DARWIN_UNIX03 */
+#define	_PID1ERR	ESRCH
+#define	_POSIXKILL	0
+#endif	/* !__DARWIN_UNIX03 */
+
 /*
  * Backwards-compatible killpg().
  */
@@ -48,8 +58,8 @@
 killpg(pid_t pgid, int sig)
 {
 	if (pgid == 1) {
-		errno = ESRCH;
+		errno = _PID1ERR;
 		return (-1);
 	}
-	return (kill(-pgid, sig));
+	return (__kill(-pgid, sig, _POSIXKILL));
 }