]> git.donarmstrong.com Git - lilypond.git/blobdiff - bin/convert-mudela
release: 0.0.68pre
[lilypond.git] / bin / convert-mudela
index dbb0f729a46716641e3406169471bd6ecc084358..4ae7f6f57c761186814e377a197d859b09c4984d 100755 (executable)
@@ -1,19 +1,43 @@
 #!/usr/bin/perl -w
 
+=head1 TODO
+
+    detect \lyrics and \melodic, and do substitution accordingly.
+    count <> and {} ?
+    
+=cut    
+
+
+
 #
 # version of "supporting" engine, not mudela conversions.
 # 
 
-$convert_mudela_version = "0.1";
+
+
+
+$convert_mudela_version = "0.1.1";
 
 use Getopt::Long;
 
 
 
+sub  cmpver 
+{      
+
+       my(@a)= split /\./,$a;
+       my(@b)= split /\./,$b;
+       
+       for $i (0,1,2) {
+           return $a[$i] <=> $b[$i] if ($a[$i] != $b[$i]);
+       }
+       return $a cmp $b;
+}
+
 sub version_string_conv
 {
     my ($from_version, $to_version) = @_;
-    s/\version \"0.0.$from_version\"/\version \"0.0.$to_version\"/g;
+    s/\version \"$from_version\"/\version \"$to_version\"/g;
 }
 
 ################################################################
@@ -46,6 +70,20 @@ sub convert_0_0_55_to_0_0_56
     s/\"\|\|\"/\"|.\"/g;
 }
 
+sub convert_0_0_56_to_0_0_57
+{
+    s/\(([ \]\[|\t-\.>]|\\[<!>a-z]+)*\)/\~ $1/g;
+}
+
+sub convert_0_0_57_to_0_0_58
+{
+    s/\[ *([^\[\]]*)\] *([1-9]*) *\/ *([1-9]*)/[$2\/$3 $1]1\/1/g;
+}
+
+sub convert_0_0_58_to_0_0_58
+{
+    die "Not smart enough to convert 0.0.58 to 0.0.59\n";
+}
 ###############################################################
 
 sub    last_conversion
@@ -57,7 +95,7 @@ sub identify
 {
     
     print STDERR "This is convert-mudela " . $convert_mudela_version . 
-       " (up to mudela version 0.0.", last_conversion, ")\n";
+       " (up to mudela version ", last_conversion,     ")\n";
 }
   
   
@@ -71,22 +109,25 @@ sub identify
      . "  -h, --help             print this help\n"
      . "  -o, --output=FILE      name output file\n"
      . "  -s, --show-rules       print all known conversion rules\n"
-     . "  -t, --to=PATCHLEVEL    convert to version 0.0.PATCHLEVEL\n"
+     . "  -t, --to=VERSION    convert to version VERSION\n"
   }
       
-# beware of the year 2000
-my %minor_conversions = (50 => \&no_conv,
-                        52 => \&convert_0_0_50_to_0_0_52,
-                        53 => \&convert_0_0_52_to_0_0_53,
-                        54 => \&convert_0_0_53_to_0_0_54,
-                        55 => \&convert_0_0_54_to_0_0_55,
-                        56 => \&convert_0_0_55_to_0_0_56
-                        );
+
+my %minor_conversions = ("0.0.50" => \&no_conv,
+                        "0.0.52" => \&convert_0_0_50_to_0_0_52,
+                        "0.0.53" => \&convert_0_0_52_to_0_0_53,
+                        "0.0.54" => \&convert_0_0_53_to_0_0_54,
+                        "0.0.55" => \&convert_0_0_54_to_0_0_55,
+                        "0.0.56" => \&convert_0_0_55_to_0_0_56,
+                        "0.0.57" => \&convert_0_0_56_to_0_0_57,
+                        "0.0.58" => \&convert_0_0_57_to_0_0_58,
+                        "0.0.59" => \&convert_0_0_58_to_0_0_59
+                        );
  
 
 sub versions 
 {
-    return  (sort keys %minor_conversions);
+    return (sort keys %minor_conversions);
 }
     
 
@@ -144,7 +185,6 @@ sub get_auto_from
        my $u;
        return $u;
     }
-    $ver =~ s/0\.0\.// ;
     close INLY;
     return $ver;
 }