Support X.Y.Z.D Perl versions
diff --git a/devel/bin/update_version b/devel/bin/update_version
index aa44a9b..929d965 100755
--- a/devel/bin/update_version
+++ b/devel/bin/update_version
@@ -26,28 +26,33 @@
my $version = shift(@ARGV) or die $usage;
# standardize version strings
-my ( $x, $y, $z, $dev );
+my ( $x, $y, $z, $dev_sep, $dev );
if ( $version =~ m/^(\d+)\.(\d+)\.(\d+)$/ ) {
( $x, $y, $z, $dev ) = ( $1, $2, $3, 0 );
}
-elsif ( $version =~ m/^(\d+)\.(\d+)\.(\d+)_(\d+)$/ ) {
- ( $x, $y, $z, $dev ) = ( $1, $2, $3, $4 );
+elsif ( $version =~ m/^(\d+)\.(\d+)\.(\d+)([._])(\d+)$/ ) {
+ ( $x, $y, $z, $dev_sep, $dev ) = ( $1, $2, $3, $4, $5 );
}
elsif ( $version =~ m/^(\d+)\.(\d\d\d)(\d\d\d)$/ ) {
( $x, $y, $z, $dev ) = ( int($1), int($2), int($3), 0 );
}
-elsif ( $version =~ m/^(\d+)\.(\d\d\d)(\d\d\d)_(\d\d\d)$/ ) {
- ( $x, $y, $z, $dev ) = ( int($1), int($2), int($3), int($4) );
+elsif ( $version =~ m/^(\d+)\.(\d\d\d)(\d\d\d)(_)?(\d\d\d)$/ ) {
+ ( $x, $y, $z, $dev_sep, $dev )
+ = ( int($1), int($2), int($3), defined($4) ? $4 : '.', int($5) );
}
else {
die "Unknown version syntax. Try X.Y.Z or X.YYYZZZ\n";
}
my $x_y_z_version = sprintf( "%d.%d.%d", $x, $y, $z );
my $x_y_z_d_version = $dev
- ? sprintf( "%d.%d.%d_%d", $x, $y, $z, $dev )
+ ? $dev_sep eq '_'
+ ? sprintf( "%d.%d.%d_%d", $x, $y, $z, $dev )
+ : sprintf( "%d.%d.%d.%d", $x, $y, $z, $dev )
: sprintf( "%d.%d.%d", $x, $y, $z );
my $x_yyyzzz_version = $dev
- ? sprintf( "%d.%03d%03d_%03d", $x, $y, $z, $dev )
+ ? $dev_sep eq '_'
+ ? sprintf( "%d.%03d%03d_%03d", $x, $y, $z, $dev )
+ : sprintf( "%d.%03d%03d%03d", $x, $y, $z, $dev )
: sprintf( "%d.%03d%03d", $x, $y, $z );
print "Using version: $x_y_z_version ( $x_yyyzzz_version )\n";