projects
/
id3fs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
id3fs-tag: implement -o
[id3fs.git]
/
lib
/
ID3FS
/
AudioFile
/
Mp3.pm
diff --git
a/lib/ID3FS/AudioFile/Mp3.pm
b/lib/ID3FS/AudioFile/Mp3.pm
index
2b90b5d
..
7cd15b9
100644
(file)
--- a/
lib/ID3FS/AudioFile/Mp3.pm
+++ b/
lib/ID3FS/AudioFile/Mp3.pm
@@
-204,14
+204,24
@@
sub delete_genre { shift->delete("genre"); }
sub delete_tags
{
sub delete_tags
{
- my($self,
@tag
s)=@_;
+ my($self,
$tags, $delval
s)=@_;
my $current=$self->tags();
my @current=split(/\s*,\s*/, $current);
my $current=$self->tags();
my @current=split(/\s*,\s*/, $current);
+ my @tags=split(/\s*,\s*/, $tags);
my %hash=();
@hash{@current}=();
for my $tag (@tags)
{
delete($hash{$tag}) if(exists($hash{$tag}));
my %hash=();
@hash{@current}=();
for my $tag (@tags)
{
delete($hash{$tag}) if(exists($hash{$tag}));
+ if($delvals)
+ {
+ my $base=($tag =~ /(.*?)\//)[0];
+ $base=$tag unless($base);
+ for my $curtag (keys %hash)
+ {
+ delete($hash{$curtag}) if($curtag =~ /^$base\//);
+ }
+ }
}
my @tagsout=sort keys(%hash);
my $genre=join(', ', @tagsout);
}
my @tagsout=sort keys(%hash);
my $genre=join(', ', @tagsout);