+ my $artist=$file->artist();
+ my $album=$file->album();
+ my $track=$file->track();
+ my $tracknum=$file->tracknum();
+ my $year=$file->year();
+ my $comment=$file->comment();
+ my $v1genre=$file->v1genre();
+ my @tags=$file->tags();
+ @tags = map { (ref($_) eq "ARRAY") ? join('/', grep {defined;} @{$_}) : $_; } @tags;
+ if($verbose)
+ {
+ print $file->path(), ":\n";
+ print " tracknum: $tracknum\n" if($tracknum);
+ print " artist: $artist\n" if($artist);
+ print " album: $album\n" if($album);
+ print " song: $track\n" if($track);
+ print " year: $year\n" if($year);
+ print " v1genre: $v1genre\n" if($v1genre);
+ print " comment: $comment\n" if($comment);
+ }
+ else
+ {
+ my @fields=($file->path(), $tracknum, $artist, $album, $track,
+ $year, $v1genre, $comment);
+ @fields=map { defined($_) ? $_ : ""; } @fields;
+ print join(':', @fields), "\n";
+ }
+ if(@tags)
+ {
+ if($verbose) { print " tags: "; }
+# else { print $file->path() . ":tags:"; }
+ else { print "tags:"; }
+ print join(", ", @tags), "\n";
+ }
+}
+
+sub gather_tags
+{
+ my($path, $file)=@_;
+ my @tags=$file->tags();
+ @tags=map { join('/', grep { defined; } @$_); } @tags;
+ @tags=ID3FS::AudioFile::uniq(@tags);
+ $file_tags{$path}=\@tags;
+ my @argv_tags=();
+ @argv_tags=@{$argv_tags{$current_argv}} if($argv_tags{$current_argv});
+ $argv_tags{$current_argv}=[ ID3FS::AudioFile::uniq(@tags, @argv_tags) ];
+}
+
+sub summarize_tags
+{
+ my @all_tags=ID3FS::AudioFile::uniq(map { @$_; } values(%argv_tags));
+ # find common tags
+ my @common_tags=();
+OUTER: for my $tag (@all_tags)
+ {
+ for my $taglist (values(%argv_tags))
+ {
+ next OUTER unless(grep { $_ eq $tag; } @$taglist);
+ }
+ push(@common_tags, $tag);
+ }
+ print "ALL: ", join(', ', @all_tags), "\n";
+ print "COMMON: ", join(', ', @common_tags), "\n";
+
+ use Data::Dumper;
+ # remove common tags from %argv_tags
+ for my $argv (keys(%argv_tags))
+ {
+ next unless(@{$argv_tags{$argv}});
+ $argv_tags{$argv}= [ ID3FS::AudioFile::list_remove(\@common_tags, $argv_tags{$argv}) ];
+ }
+
+ print "PER-DIR: \n";
+ for my $argv (keys(%argv_tags))
+ {
+ print "$argv: ", join(', ', @{$argv_tags{$argv}}), "\n";
+ }