patches/xmms1-01-rand.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 1096 0fe822bce53a
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1068
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     1
--- xmms-1.2.11/xmms/playlist.c	2007-11-16 23:51:30.000000000 +0200
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     2
+++ xmms-1.2.11.1/xmms/playlist.c	2008-04-30 05:24:49.627552191 +0300
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     3
@@ -1693,14 +1693,15 @@
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     4
 	for (node = list, i = 0; i < len; node = g_list_next(node), i++)
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     5
 		ptrs[i] = node;
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     6
 
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     7
-	j = (int)(random() / (RAND_MAX + 1.0) * len); 
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     8
-	list = ptrs[j];
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
     9
+	   j = (int)((len-1) * (double) rand() / (double) RAND_MAX);
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    10
+
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    11
+	   list = ptrs[j];
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    12
 	ptrs[j]->next = NULL;
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    13
 	ptrs[j] = ptrs[0];
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    14
 
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    15
 	for (i = 1; i < len; i++)
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    16
 	{
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    17
-		j = (int)(random() / (RAND_MAX + 1.0) * (len - i));
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    18
+		j = (int)((len-i-1) * (double) rand() / (double) RAND_MAX);
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    19
 		list->prev = ptrs[i + j];
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    20
 		ptrs[i + j]->next = list;
34a92eb68d4e * Wed Apr 30 2008 - [email protected]
sartek
parents:
diff changeset
    21
 		list = ptrs[i + j];
1096
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    22
--- xmms-1.2.11/xmms/main.c	Mon May  5 14:35:08 2008
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    23
+++ xmms-1.2.11.1/xmms/main.c	Mon May  5 14:39:44 2008
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    24
@@ -4178,6 +4178,9 @@
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    25
 
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    26
 int main(int argc, char **argv)
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    27
 {
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    28
+	struct timeval tp;
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    29
+	gettimeofday (&tp, NULL);
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    30
+	srand((int)(tp.tv_usec % INT_MAX));
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    31
 	char *filename;
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    32
 	const char *sm_client_id;
0fe822bce53a 2008-05-05 Andras Barna <[email protected]>
sartek
parents: 1068
diff changeset
    33
 	struct cmdlineopt options;