+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";
+ }
+}
+