#!/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;
}
################################################################
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
{
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";
}
. " -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);
}
my $u;
return $u;
}
- $ver =~ s/0\.0\.// ;
close INLY;
return $ver;
}