Hello Joachim, hello Brian,
I noticed the same behaviour of unicode-screensaver and tried to fix it -- I
think what might have been missing was the initializiation of the PRNG with
some seed. The following patch works around this issue by using
arc4random_uniform() instead of random() (according to arc4random(3) this
avoids "modulo bias") from libbsd-dev (what would be another dependency, tho).
HTH and greetings,
Stephan
---
configure.ac | 1 +
unicode.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index f5fd726..bbdbb21 100644
--- a/configure.ac
+++ b/configure.ac
@@ -277,5 +277,6 @@ AC_GETTIMEOFDAY_ARGS
# Checks for library functions.
+AC_CHECK_LIB(bsd,arc4random)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/unicode.c b/unicode.c
index 3c19244..f22629d 100644
--- a/unicode.c
+++ b/unicode.c
@@ -128,9 +128,9 @@ unicode_draw (Display *dpy, Window win, void *void_state) {
XWindowAttributes xgwa;
XGetWindowAttributes (dpy, win, &xgwa);
- font = random() % NUM_FONTS;
+ font = arc4random_uniform(NUM_FONTS);
- pickn = random() % state->font_count[font];
+ pickn = arc4random_uniform(state->font_count[font]);
pickc = 0;
for (ucs4 = FcCharSetFirstPage (state->fonts[font]->charset,
map, &next);
--
1.7.0.2
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]