Ken Williams wrote:
> 
> Thanks, applied.

I'm really sorry, but the problems Eric Wilhelm noted required me to release
0.7203 (0.7202 was a misfire).  The small patch attached needs to go on top of
the one you already applied.

John

-- 
John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Blvd
Suite H
Lanham, MD 20706
301-459-3366 x.5010
fax 301-429-5747
=== lib/Module/Build/Version.pm
==================================================================
--- lib/Module/Build/Version.pm	(revision 2049)
+++ lib/Module/Build/Version.pm	(local)
@@ -2,9 +2,9 @@
 use strict;
 
 use vars qw($VERSION);
-$VERSION = 0.7201;
+$VERSION = 0.7203;
 
-eval "use version 0.7201";
+eval "use version $VERSION";
 if ($@) { # can't locate version files, use our own
 
     # Avoid redefined warnings if an old version.pm was available
@@ -75,7 +75,7 @@
 
 use locale;
 use vars qw ($VERSION @ISA @REGEXS);
-$VERSION = 0.7201;
+$VERSION = 0.7203;
 
 push @REGEXS, qr/
 	^v?	# optional leading 'v'
@@ -97,6 +97,16 @@
 {
 	my ($class, $value) = @_;
 	my $self = bless ({}, ref ($class) || $class);
+	
+	if ( ref($value) && eval("$value->isa('version')") ) {
+	    # Can copy the elements directly
+	    $self->{version} = [ @{$value->{version} } ];
+	    $self->{qv} = 1 if $value->{qv};
+	    $self->{alpha} = 1 if $value->{alpha};
+	    $self->{original} = ''.$value->{original};
+	    return $self;
+	}
+
 	require POSIX;
 	my $currlocale = POSIX::setlocale(&POSIX::LC_ALL);
 	my $radix_comma = ( POSIX::localeconv()->{decimal_point} eq ',' );
@@ -503,8 +513,8 @@
     my $value = shift;
     # may be a v-string
     if ( $] >= 5.006_000 && length($value) >= 3 && $value !~ /[._]/ ) {
-	my $tvalue = sprintf("%vd",$value);
-	if ( $tvalue =~ /^\d+\.\d+\.\d+$/ ) {
+	my $tvalue = sprintf("v%vd",$value);
+	if ( $tvalue =~ /^v\d+\.\d+\.\d+$/ ) {
 	    # must be a v-string
 	    $value = $tvalue;
 	}

Reply via email to