* Wed Apr 30 2008 - [email protected]
authorsartek
Wed, 30 Apr 2008 17:47:47 +0000
changeset 1068 34a92eb68d4e
parent 1067 7c261e75b557
child 1069 2e3846a658c1
* Wed Apr 30 2008 - [email protected] - Add patch which fixes crash when pressing random. - xmms1-01-rand.diff added
SFExmms1.spec
patches/xmms1-01-rand.diff
--- a/SFExmms1.spec	Tue Apr 29 20:27:43 2008 +0000
+++ b/SFExmms1.spec	Wed Apr 30 17:47:47 2008 +0000
@@ -10,8 +10,10 @@
 Summary:                 X Multimedia System
 Version:                 1.2.11
 Source:                  http://www.xmms.org/files/1.2.x/xmms-%{version}.tar.bz2
+Patch1:  		  xmms1-01-rand.diff
 SUNW_BaseDir:            %{_basedir}
 BuildRoot:               %{_tmppath}/%{name}-%{version}-build
+
 %include default-depend.inc
 Requires: SUNWGtku
 Requires: SUNWGtkr
@@ -38,6 +40,7 @@
 
 %prep
 %setup -q -n xmms-%{version}
+%patch1 -p1 -b .patch01
 
 %build
 export CFLAGS="%optflags -fpic -I/usr/X11/include -I/usr/gnu/include -I/usr/gnu/include/sasl -I/usr/sfw/include -D__C99FEATURES__ -D__EXTENSIONS__ -DINSTALLPREFIX=\\\"%{_prefix}\\\""
@@ -91,5 +94,7 @@
 %{_libdir}/xmms/Input/libmpg*
 
 %changelog
+* Wed Apr 30 2008 - [email protected]
+- Add patch which fixes crash when pressing random.
 * Sun Jan 20 2008 - [email protected]
 - Initial spec.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/xmms1-01-rand.diff	Wed Apr 30 17:47:47 2008 +0000
@@ -0,0 +1,21 @@
+--- xmms-1.2.11/xmms/playlist.c	2007-11-16 23:51:30.000000000 +0200
++++ xmms-1.2.11.1/xmms/playlist.c	2008-04-30 05:24:49.627552191 +0300
+@@ -1693,14 +1693,15 @@
+ 	for (node = list, i = 0; i < len; node = g_list_next(node), i++)
+ 		ptrs[i] = node;
+ 
+-	j = (int)(random() / (RAND_MAX + 1.0) * len); 
+-	list = ptrs[j];
++	   j = (int)((len-1) * (double) rand() / (double) RAND_MAX);
++
++	   list = ptrs[j];
+ 	ptrs[j]->next = NULL;
+ 	ptrs[j] = ptrs[0];
+ 
+ 	for (i = 1; i < len; i++)
+ 	{
+-		j = (int)(random() / (RAND_MAX + 1.0) * (len - i));
++		j = (int)((len-i-1) * (double) rand() / (double) RAND_MAX);
+ 		list->prev = ptrs[i + j];
+ 		ptrs[i + j]->next = list;
+ 		list = ptrs[i + j];