diff options
Diffstat (limited to 'x11vnc/util.c')
-rw-r--r-- | x11vnc/util.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/x11vnc/util.c b/x11vnc/util.c index 7b59bb2..8e18781 100644 --- a/x11vnc/util.c +++ b/x11vnc/util.c @@ -399,8 +399,23 @@ double rnow(void) { } double rfac(void) { - double f = (double) rand(); + double f; + static int first = 1; + + if (first) { + unsigned int s; + if (getenv("RAND_SEED")) { + s = (unsigned int) atoi(getenv("RAND_SEED")); + } else { + s = (unsigned int) ((int) getpid() + 100000 * rnow()); + } + srand(s); + first = 0; + } + + f = (double) rand(); f = f / ((double) RAND_MAX); + return f; } |