fixed delete_all
[id3fs.git] / bin / id3fs-tag
index 9b36c21..42650c3 100755 (executable)
@@ -89,18 +89,22 @@ sub do_deletes
     $file->delete_year()             if($delete_year);
     $file->delete_v1genre()          if($delete_v1genre);
     $file->delete_comment()          if($delete_comment);
-    $file->delete_all()              if($delete_all);
     $file->delete_genre()            if($delete_genre);
     $file->delete_tags($delete_tags) if($delete_tags);
     if(@replace_tags && $replace_tags[0])
     {
        $file->delete_tags($replace_tags[0]);
     }
+    $file->delete_all()              if($delete_all);
 
-    return($delete_artist   || $delete_album  || $delete_track   ||
-          $delete_tracknum || $delete_year   || $delete_v1genre ||
-          $delete_comment  || $delete_all    || $delete_genre   ||
-          $delete_tags     || (@replace_tags && $replace_tags[0]));
+    # we don't want to save the tag if we've deleted it
+    return 0 if($delete_all);
+
+    my $donesomething=($delete_artist   || $delete_album || $delete_track   ||
+                      $delete_tracknum || $delete_year  || $delete_v1genre ||
+                      $delete_comment  || $delete_genre || $delete_tags    ||
+                      (@replace_tags && $replace_tags[0]));
+    return($donesomething ? 1 : 0);
 }
 
 sub do_adds
@@ -120,11 +124,13 @@ sub do_adds
        $file->add_tags($replace_tags[1]);
     }
 
-    return(defined($artist)   || defined($album) || defined($track)    ||
-          defined($tracknum) || defined($year)  || defined($v1genre)  ||
-          defined($comment)  || defined($genre) || defined($add_tags) ||
-          (@replace_tags && defined($replace_tags[1])));
-
+    my $donesomething=(defined($artist)   || defined($album) ||
+                      defined($track)    || defined($tracknum) ||
+                      defined($year)     || defined($v1genre) ||
+                      defined($comment)  || defined($genre) ||
+                      defined($add_tags) ||
+                      (@replace_tags && defined($replace_tags[1])));
+    return( $donesomething ? 1 : 0 );
 }
 
 sub do_write
@@ -144,6 +150,9 @@ sub do_display
     my $comment=$file->comment();
     my $v1genre=$file->v1genre();
     my @tags=$file->tags();
+    @tags = map { (ref($_) eq "ARRAY") ? join('/', grep {defined;} @{$_}) : $_; } @tags;
+    use Data::Dumper;
+    print Dumper \@tags;
     if($verbose)
     {
        print $file->path(), ":\n";