Loading...
gen/FreeBSD/nice.c.patch /dev/null Libc-763.11
--- /dev/null
+++ Libc/Libc-763.11/gen/FreeBSD/nice.c.patch
@@ -0,0 +1,34 @@
+--- nice.c.orig	2009-11-07 14:51:38.000000000 -0800
++++ nice.c	2009-11-07 14:51:40.000000000 -0800
+@@ -38,7 +38,9 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/nic
+ #include <sys/resource.h>
+ #include <errno.h>
+ #include <unistd.h>
+-
++#if __DARWIN_UNIX03
++#include <limits.h>
++#endif /* __DARWIN_UNIX03 */
+ /*
+  * Backwards compatible nice.
+  */
+@@ -46,11 +48,18 @@ int
+ nice(incr)
+ 	int incr;
+ {
+-	int prio;
++	int prio, rv;
+ 
+ 	errno = 0;
+ 	prio = getpriority(PRIO_PROCESS, 0);
+ 	if (prio == -1 && errno)
+ 		return (-1);
+-	return (setpriority(PRIO_PROCESS, 0, prio + incr));
++#if __DARWIN_UNIX03
++	if (prio + incr > NZERO-1)
++		incr = NZERO-1-prio;
++#endif /* __DARWIN_UNIX03 */
++	rv = setpriority(PRIO_PROCESS, 0, prio + incr);
++	if (rv == -1 && errno == EACCES)
++		errno = EPERM;
++	return (rv == -1) ? rv : getpriority(PRIO_PROCESS, 0);
+ }