fix setting genre
authorIan Beckwith <ianb@erislabs.net>
Wed, 3 Nov 2010 04:22:40 +0000 (04:22 +0000)
committerIan Beckwith <ianb@erislabs.net>
Wed, 3 Nov 2010 04:22:40 +0000 (04:22 +0000)
bin/id3fs-tag
lib/ID3FS/AudioFile.pm

index f4b0df2..3037ad9 100755 (executable)
@@ -68,6 +68,7 @@ while(my $filename=shift @ARGV)
        next;
     }
     my $file=ID3FS::AudioFile->new($filename);
+    next unless($file);
     my $changes=0;
     $changes =  do_deletes($file);
     $changes += do_adds($file);
@@ -97,15 +98,15 @@ sub do_deletes
     $file->delete_year()     if($delete_year);
     $file->delete_v1genre()  if($delete_v1genre);
     $file->delete_comment()  if($delete_comment);
-    $file->delete_genre()    if($delete_genre);
+    $file->delete_genre()    if($delete_genre || $genre);
     $file->delete_tags($delete_tags, 0)       if($delete_tags);
     $file->delete_tags($delete_tagvals, 1)    if($delete_tagvals);
     $file->delete_tags($overwrite_tagvals, 1) if($overwrite_tagvals);
 
-    my $donesomething=($delete_artist   || $delete_album || $delete_track   ||
-                      $delete_tracknum || $delete_year  || $delete_v1genre ||
-                      $delete_comment  || $delete_genre || $delete_tags    ||
-                      $delete_tagvals  || $overwrite_tagvals);
+    my $donesomething=($delete_artist   || $delete_album   || $delete_track   ||
+                      $delete_tracknum || $delete_year    || $delete_v1genre ||
+                      $delete_comment  || $delete_genre   || $delete_tags    ||
+                      $delete_tagvals  || defined($genre) || $overwrite_tagvals);
     return($donesomething ? 1 : 0);
 }
 
@@ -119,8 +120,8 @@ sub do_adds
     $file->year($year)         if($year);
     $file->v1genre($v1genre)   if($v1genre);
     $file->comment($comment)   if($comment);
-    $file->genre($genre)       if($genre);
     $file->add_tags($add_tags) if($add_tags);
+    $file->add_tags($genre)    if($genre);
     $file->add_tags($overwrite_tagvals) if($overwrite_tagvals);
 
     my $donesomething=(defined($artist)   || defined($album) ||
index 01722ce..e020b43 100644 (file)
@@ -74,7 +74,6 @@ sub album     { return(shift->set("album", @_));    }
 sub track     { return(shift->set("track", @_));    }
 sub tracknum  { return(shift->set("tracknum", @_)); }
 sub v1genre   { return(shift->set("v1genre", @_));  }
-sub genre     { return(shift->set("genre", @_));    }
 sub comment   { return(shift->set("comment", @_));  }
 sub audiotype { return(shift->set("audiotype"));    }
 sub haspic    { return(shift->set("haspic"));       }