]> granicus.if.org Git - docbook-dsssl/commitdiff
Handle 3-part version numbers
authorNorman Walsh <ndw@nwalsh.com>
Sun, 12 May 2002 11:50:28 +0000 (11:50 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Sun, 12 May 2002 11:50:28 +0000 (11:50 +0000)
cvstools/mergechangelogs
cvstools/nextversion

index 7fbcfc26a95de3458d1956e968472fccab39eb17..7a887d9407482c3e9ea2f086820dc482c29a9699 100755 (executable)
@@ -134,13 +134,25 @@ sub last_version {
        die "Cannot find version in VERSION.\n";
     }
 
-    if ($version =~ /(\d+)\.(\d+)/) {
+    if ($version =~ /^(\d+)\.(\d+)$/) {
        my $major = $1;
        my $minor = $2;
 
        $minor--;
 
        return "$major.$minor";
+    } elsif ($version =~ /^(\d+)\.(\d+)\.(\d+)$/) {
+       my $major = $1;
+       my $middle = $2;
+       my $minor = $3;
+
+       if ($minor == 0) {
+           die "Can\'t calculate preceding from $version.\n";
+       } else {
+           $minor--;
+       }
+
+       return "$major.$middle.$minor";
     } else {
        return $version;
     }
index 45a8be03623cd224ad21be7999bcbec78ef50c36..1cb39dcb78c7f3871517dc653ec2348bcdb68e7d 100755 (executable)
@@ -21,22 +21,38 @@ open (F, 'VERSION') || die "Cannot find VERSION.\n";
 read (F, $_, -s 'VERSION');
 close (F);
 
-if (/^(.*name=.VERSION.>)(\d+)\.(\d+)\+?(<.*)$/s) {
+if (/^(.*name=.VERSION.>)([\.\d]+)\+?(<.*)$/s) {
     # ok
-} elsif (/^(.*?)(\d+)\.(\d+)\+?(.*)$/s) {
+} elsif (/^(.*?)([\.\d]+)\+?(.*)$/s) {
     # ok
 } else {
     die "Cannot find version in VERSION.\n";
 }
 
 my $pre = $1;
-my $major = $2;
-my $minor = $3;
-my $post = $4;
-
-$minor++;
+my $fvers = $2;
+my $post = $3;
+
+my $major = undef;
+my $middle = undef;
+my $minor = undef;
+
+if ($fvers =~ /^(\d+)\.(\d+)\.(\d+)$/) {
+    $major = $1;
+    $middle = $2;
+    $minor = $3;
+    $minor++;
+    $fvers = "$major.$middle.$minor";
+} elsif ($fvers =~ /^(\d+)\.(\d+)$/) {
+    $major = $1;
+    $minor = $2;
+    $minor++;
+    $fvers = "$major.$minor";
+} else {
+    die "Cannot parse version: $fvers\n";
+}
 
-$version = "$major.$minor" if !$version;
+$version = "$fvers" if !$version;
 
 print "About to release $version; are you sure? ";
 chop($_ = scalar(<>));