1068
|
1 |
--- xmms-1.2.11/xmms/playlist.c 2007-11-16 23:51:30.000000000 +0200
|
|
2 |
+++ xmms-1.2.11.1/xmms/playlist.c 2008-04-30 05:24:49.627552191 +0300
|
|
3 |
@@ -1693,14 +1693,15 @@
|
|
4 |
for (node = list, i = 0; i < len; node = g_list_next(node), i++)
|
|
5 |
ptrs[i] = node;
|
|
6 |
|
|
7 |
- j = (int)(random() / (RAND_MAX + 1.0) * len);
|
|
8 |
- list = ptrs[j];
|
|
9 |
+ j = (int)((len-1) * (double) rand() / (double) RAND_MAX);
|
|
10 |
+
|
|
11 |
+ list = ptrs[j];
|
|
12 |
ptrs[j]->next = NULL;
|
|
13 |
ptrs[j] = ptrs[0];
|
|
14 |
|
|
15 |
for (i = 1; i < len; i++)
|
|
16 |
{
|
|
17 |
- j = (int)(random() / (RAND_MAX + 1.0) * (len - i));
|
|
18 |
+ j = (int)((len-i-1) * (double) rand() / (double) RAND_MAX);
|
|
19 |
list->prev = ptrs[i + j];
|
|
20 |
ptrs[i + j]->next = list;
|
|
21 |
list = ptrs[i + j];
|
1096
|
22 |
--- xmms-1.2.11/xmms/main.c Mon May 5 14:35:08 2008
|
|
23 |
+++ xmms-1.2.11.1/xmms/main.c Mon May 5 14:39:44 2008
|
|
24 |
@@ -4178,6 +4178,9 @@
|
|
25 |
|
|
26 |
int main(int argc, char **argv)
|
|
27 |
{
|
|
28 |
+ struct timeval tp;
|
|
29 |
+ gettimeofday (&tp, NULL);
|
|
30 |
+ srand((int)(tp.tv_usec % INT_MAX));
|
|
31 |
char *filename;
|
|
32 |
const char *sm_client_id;
|
|
33 |
struct cmdlineopt options;
|