X-Git-Url: https://diplodocus.org/git/flac-archive/blobdiff_plain/e0a7f4f7a7ae12ecbd9e016713bca7962ddf77c6..fee6350f22d80d9f54f9ad4dccbfa7696e3e861a:/flacsplit diff --git a/flacsplit b/flacsplit index 05c2568..032fea2 100755 --- a/flacsplit +++ b/flacsplit @@ -42,7 +42,8 @@ sub get_decode_args { my $fn = shift; my @l; - open(F, '-|', 'metaflac', '--export-cuesheet-to=-', $fn); + open(F, '-|', 'metaflac', '--no-utf8-convert', '--export-cuesheet-to=-', + $fn); while () { /INDEX 01 (\d\d):(\d\d):(\d\d)$/ or next; push(@l, [$1, $2, $3]); @@ -130,10 +131,12 @@ sub flacsplit { my $outdir; my $outfile; - open(my $fp, '-|', 'metaflac', '--export-tags-to=-', $fn) - or die("open(metaflac --export-tags-to=- $fn): $!"); + open(my $fp, '-|', 'metaflac', '--no-utf8-convert', '--export-tags-to=-', + $fn) + or die("open(metaflac --no-utf8-convert --export-tags-to=- $fn): $!"); ($artist, $album, $discnum, @tags) = get_tags($fp, $fn); - close($fp) or die("close(metaflac --export-tags-to=- $fn): $?"); + close($fp) + or die("close(metaflac --no-utf8-convert --export-tags-to=- $fn): $?"); for ($artist, $album) { s/'/'\\''/g; s|/|_|g; @@ -149,9 +152,12 @@ sub flacsplit { my %tracks_to_tags; my @disc_artist; my @tmp; + my $hack = 1; for my $tag (@tags) { if ($tag =~ /^([^[]+)\[(\d+)]=(.*)/) { push(@{$tracks_to_tags{$2}->{$1}}, $3); + } elsif ($tag =~ /^TITLE=(.*)/) { + push(@{$tracks_to_tags{$hack++}->{'TITLE'}}, $1); } elsif ($tag =~ /^ARTIST=/) { push(@disc_artist, $tag); } else {