Index: trunk/flactrack
===================================================================
--- trunk/flactrack	(revision 4)
+++ trunk/flactrack	(revision 5)
@@ -11,4 +11,6 @@
 use File::Path;
 use Audio::FLAC::Header;
+#TODO: put the MusicBrainz lib in a more common location
+use lib qw{/home/peter/projects/flacrip};
 use MusicBrainz;
 
@@ -43,4 +45,5 @@
 if ($ALL) {
     die "Use of --all requires a --directory\n" unless $DIRECTORY;
+    die "No track info found on MusicBrainz for $FLAC_FILE\n" unless $info;
     use YAML;
     my $cuesheet = $flac->cuesheet;
@@ -51,9 +54,14 @@
         $_ => catfile($DIRECTORY, sprintf('%02d.%s', $_, to_filename($info->{TRACKS}[$_]{TITLE})))
     } (1 .. $count);
-    print Dump(\%TRACKS);
+    #print Dump(\%TRACKS);
+    for my $tracknum (sort { $a <=> $b } keys %TRACKS) {
+        printf "%2d: %s\n", $tracknum, $TRACKS{$tracknum};
+    }
     mkpath($DIRECTORY);
 }
 
-while (my ($tracknum, $title) = each %TRACKS) {
+#TODO: all the option of sorting by tracknum or not
+#while (my ($tracknum, $title) = each %TRACKS) {
+for my $tracknum (sort { $a <=> $b } keys %TRACKS) {
     if ($tracknum !~ /^\d+$/) {
 	warn "Don't know what to do with track number '$tracknum'";
@@ -68,5 +76,5 @@
     }
 
-    $title = quotemeta($title);
+    my $title = quotemeta($TRACKS{$tracknum});
     if ($TYPE eq 'mp3') {
         # bitrate of 192
@@ -89,4 +97,5 @@
     #die $cmd;
     system $cmd;
+    die "\nFLAC decoding canceled\n" if ($? & 127);
 
     print "\n" if $SOX_FILTER;
