[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: