On Sun, Apr 05, 2009 at 12:43:07PM -0600, Bob Beck wrote:
> Someone please have a look, and either commit it or tell me to.
If you add the following patch to the port's makefile, it's ok:
Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/mpd/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- Makefile 28 Oct 2008 15:21:48 -0000 1.16
+++ Makefile 5 Apr 2009 19:12:26 -0000
@@ -2,7 +2,7 @@
COMMENT= Music Player Daemon
DISTNAME= mpd-0.13.2
-PKGNAME= ${DISTNAME}p2
+PKGNAME= ${DISTNAME}p3
CATEGORIES= audio
HOMEPAGE= http://www.musicpd.org/
MAINTAINER= Tobias Ulmer <[email protected]>
>
> -Bob
>
> ----8<----
> Index: patch-src_playlist_c
> ===================================================================
> RCS file: patch-src_playlist_c
> diff -N patch-src_playlist_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patch-src_playlist_c 5 Apr 2009 18:27:42 -0000
> @@ -0,0 +1,57 @@
> +--- src/playlist.c.orig Sun Apr 5 12:11:54 2009
> ++++ src/playlist.c Sun Apr 5 12:06:13 2009
> +@@ -1189,15 +1189,23 @@
> + }
> + }
> +
> +- for (i = start; i <= end; i++) {
> +- ri = random() % (end - start + 1) + start;
> +- if (ri == playlist.current)
> +- playlist.current = i;
> +- else if (i == playlist.current)
> +- playlist.current = ri;
> +- swapOrder(i, ri);
> ++ /*
> ++ * Shuffle the Order.
> ++ * Use an unbiased Fisher-Yates shuffle.
> ++ */
> ++ i = end + 1;
> ++ while (i > start + 1) {
> ++ ri = random() % (i - start); /* 0 <= ri <= len */
> ++ ri += start;
> ++ i--; /* i is now the last pertinent index */
> ++ if (i != ri) { /* do nothing if i == ri */
> ++ if (ri == playlist.current)
> ++ playlist.current = i;
> ++ else if (i == playlist.current)
> ++ playlist.current = ri;
> ++ swapOrder(i, ri);
> ++ }
> + }
> +-
> + }
> +
> + int setPlaylistRandomStatus(int fd, int status)
> +@@ -1281,12 +1289,17 @@
> + i = 0;
> + playlist.current = -1;
> + }
> +- /* shuffle the rest of the list */
> +- for (; i < playlist.length; i++) {
> +- ri = random() % (playlist.length - 1) + 1;
> +- swapSongs(i, ri);
> ++ /*
> ++ * shuffle the rest of the list
> ++ * Use an unbiased Fisher-Yates shuffle.
> ++ */
> ++ i = playlist.length;
> ++ while (i > 1) {
> ++ ri = random() % i; /* 0 <= ri <= len */
> ++ i--; /* i is now the last pertinent index */
> ++ if (i != ri) /* do nothing if i == ri */
> ++ swapSongs(i, ri);
> + }
> +-
> + incrPlaylistVersion();
> + }
> +
>
>
>
>
--
Echte Männer [tm] lieben Autos. Und wenn Macs schon Mädchencomputer sind,
muss man das ja irgendwie kompensieren.
-- Markus Hippeli in de.comp.sys.mac.{misc,soc}