code: drawterm

ref: 19fc221351f4f1d159a7a5e2b6ea0d3bd2973bf3
dir: /libc/nrand.c/

View raw version
#include	<u.h>
#include	<libc.h>

#define	MASK	0x7fffffffL

int
nrand(int n)
{
	long slop, v;

	if(n < 0)
		return n;
	if(n == 1)
		return 0;
	/* and if n == 0, you deserve what you get */
	slop = MASK % n;
	do
		v = lrand();
	while(v <= slop);
	return v % n;
}