* process.c (proc_setuid, proc_setgid, proc_seteuid, proc_setegid):
  get rid of bogus implementations on Mac OS X.


Index: process.c
===================================================================
RCS file: /cvs/ruby/src/ruby/process.c,v
retrieving revision 1.150
diff -p -u -2 -r1.150 process.c
--- process.c	25 Jul 2006 04:57:16 -0000	1.150
+++ process.c	10 Aug 2006 22:07:11 -0000
@@ -104,4 +104,8 @@ static VALUE S_Tms;
 #define BROKEN_SETREGID 1
 #endif
+#if defined(__MacOS_X__)
+#define BROKEN_SETRUID 1
+#define BROKEN_SETRGID 1
+#endif
 
 #if defined(HAVE_44BSD_SETUID) || defined(__MacOS_X__)
@@ -2194,7 +2198,7 @@ proc_setuid(VALUE obj, VALUE id)
 #if defined(HAVE_SETRESUID) &&  !defined(__CHECKER__)
     if (setresuid(uid, -1, -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREUID
+#elif defined(HAVE_SETREUID) && !defined(BROKEN_SETREUID)
     if (setreuid(uid, -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETRUID
+#elif defined(HAVE_SETRUID) && !defined(BROKEN_SETRUID)
     if (setruid(uid) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETUID
@@ -2557,8 +2561,8 @@ proc_setgid(VALUE obj, VALUE id)
 #if defined(HAVE_SETRESGID) && !defined(__CHECKER__)
     if (setresgid(gid, -1, -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREGID
+#elif defined(HAVE_SETREGID) && !defined(BROKEN_SETREGID)
     if (setregid(gid, -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETRGID
-    if (setrgid((GIDTYPE)gid) < 0) rb_sys_fail(0);
+#elif defined(HAVE_SETRGID) && !defined(BROKEN_SETRGID)
+    if (setrgid(gid) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETGID
     {
@@ -3005,5 +3009,5 @@ proc_seteuid(VALUE obj, VALUE euid)
 #if defined(HAVE_SETRESUID) && !defined(__CHECKER__)
     if (setresuid(-1, NUM2INT(euid), -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREUID
+#elif defined(HAVE_SETREUID) && !defined(BROKEN_SETREUID)
     if (setreuid(-1, NUM2INT(euid)) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETEUID
@@ -3115,5 +3119,5 @@ proc_setegid(VALUE obj, VALUE egid)
 #if defined(HAVE_SETRESGID) && !defined(__CHECKER__)
     if (setresgid(-1, NUM2INT(egid), -1) < 0) rb_sys_fail(0);
-#elif defined HAVE_SETREGID
+#elif defined(HAVE_SETREGID) && !defined(BROKEN_SETREGID)
     if (setregid(-1, NUM2INT(egid)) < 0) rb_sys_fail(0);
 #elif defined HAVE_SETEGID
