Bug#440182: Gnump3d fails to generate m3u's with seconds included.
Package: gnump3d
Version: 2.9.9.9-2
It's seems that when giving a root directory for gnump3d with and
ending slash, e.g. '/opt/music/' lookups in the tag-cache will fail
when m3u files a generated in advanced_playlists are used.
The reason for this is that the tag-cache lookup strips double '/',
and when generating the m3u files the hash-lookup on the cache's
return value fails, since the key (the filename) is stored with
double-'/' stripped, and the lookup still contains the double '/''s.
Patch attached.
Kind regards
Jesper L. Nielsen
--- usr/bin/gnump3d 2006-11-04 19:19:27.000000000 +0100
+++ /usr/bin/gnump3d 2007-08-30 15:25:05.000000000 +0200
@@ -1584,10 +1584,10 @@
$tags = getSongDisplay( $file ) . "\n";
if ( not ( $tags =~ /^#EXTINF/ ) )
{
- # fall back to just getting the length and filename
- $tagCache->setFormatString( "#EXTINF:\$SECONDS,\$FILENAME" );
+ # fall back to just getting the length and filename
+ $tagCache->setFormatString( "#EXTINF:\$SECONDS,\$FILENAME" );
- $tags = getSongDisplay( $file ) . "\n";
+ $tags = getSongDisplay( $file ) . "\n";
#
# Remove any leading path
@@ -2762,6 +2762,15 @@
{
my ( $file, $format ) = ( @_ );
+ # Remove double slashes, needed because the formatMultipleSongTags
+ # does this, and if we don't the $TAGS{ $file } lookup will fail
+ # because the filename stored (without double '/') doesn't match
+ # the $file variable here (possibly containing double '/').
+ while( $file =~ /\/\// )
+ {
+ $file =~ s/\/\//\//g;
+ }
+
#
# If we're hiding song tags just display the filename
if ( $hide_song_tags )
Reply to: