--- 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));
}