summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-03-10 10:03:39 +0100
committerDaniel Friesel <derf@finalrewind.org>2018-03-10 10:03:39 +0100
commitf8640490308f29de951b7b59f07be8b744f6e895 (patch)
treeb4c2af1c051f698b7c3ce50c2dfc96547c3e76b3
parente522c4ea04e9d899907deb5d0304f7de0823e9da (diff)
Only set random seed once
Fixes non-random behaviour when randomizing file lists several times per second. Closes #349
-rw-r--r--src/gib_list.c1
-rw-r--r--src/imlib.c3
-rw-r--r--src/main.c2
3 files changed, 2 insertions, 4 deletions
diff --git a/src/gib_list.c b/src/gib_list.c
index 281f528..5384d98 100644
--- a/src/gib_list.c
+++ b/src/gib_list.c
@@ -360,7 +360,6 @@ gib_list_randomize(gib_list * list)
{
farray[i] = f;
}
- srand(getpid() * time(NULL) % ((unsigned int) -1));
for (i = 0; i < len - 1; i++)
{
r = i + rand() / (RAND_MAX / (len - i) + 1 );
diff --git a/src/imlib.c b/src/imlib.c
index d9c5cd0..baaa64a 100644
--- a/src/imlib.c
+++ b/src/imlib.c
@@ -133,9 +133,6 @@ void init_x_and_imlib(void)
imlib_set_cache_size(opt.cache_size * 1024 * 1024);
- /* Initialise random numbers */
- srand(getpid() * time(NULL) % ((unsigned int) -1));
-
return;
}
diff --git a/src/main.c b/src/main.c
index 840919f..534b89e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -42,6 +42,8 @@ int main(int argc, char **argv)
{
atexit(feh_clean_exit);
+ srand(getpid() * time(NULL) % ((unsigned int) -1));
+
setup_signal_handlers();
init_parse_options(argc, argv);