diff -u -p -r1.84 -r1.85
--- xmms/xmms/playlist.c 2004/03/21 16:41:56 1.84
+++ xmms/xmms/playlist.c 2004/04/12 19:06:58 1.85
@@ -1633,14 +1640,14 @@ static GList *playlist_shuffle_list(GLis
for (node = list, i = 0; i < len; node = g_list_next(node), i++)
ptrs[i] = node;
- j = random() % len;
+ j = (int)(random() / (RAND_MAX + 1.0) * len);
list = ptrs[j];
ptrs[j]->next = NULL;
ptrs[j] = ptrs[0];
for (i = 1; i < len; i++)
{
- j = random() % (len - i);
+ j = (int)(random() / (RAND_MAX + 1.0) * (len - i));
list->prev = ptrs[i + j];
ptrs[i + j]->next = list;
list = ptrs[i + j];
diff -u -p -r1.88 -r1.89
--- xmms/xmms/playlist.c 2005/05/06 23:57:03 1.88
+++ xmms/xmms/playlist.c 2005/05/07 01:47:35 1.89
@@ -563,7 +563,7 @@ void playlist_play(void)
/* If there are entries */
if (g_list_length(skinlist)) {
/* Get a random value to select the skin to use */
- int randval = random() % (g_list_length(skinlist) + 1);
+ int randval = (gint)(random() / (RAND_MAX + 1.0) * (g_list_length(skinlist) + 1));
/* If the random value is 0, use the default skin */
/* Otherwise subtract 1 from the random value and */
/* select the skin */