summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-09-02 15:01:39 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2004-09-02 15:01:39 +0000
commitc76df65ea1362504976e117978fbad4e35fdbb7e (patch)
tree64f3c294b45eee3eb3786a2ccffb674092c070bc
parente75d1f1083177907de70add76a22bf9ee81d8f6c (diff)
downloadperl-c76df65ea1362504976e117978fbad4e35fdbb7e.tar.gz
Upgrade to version 0.42.
From: Subject: CPAN Upload: J/JP/JPEACOCK/version-0.42.tar.gz From: John Peacock <jpeacock@rowman.com> Date: Wed, 18 Aug 2004 08:26:35 -0400 Message-ID: <41234AFB.1020009@rowman.com> p4raw-id: //depot/perl@23257
-rw-r--r--lib/version.pm2
-rw-r--r--lib/version.t2
-rw-r--r--util.c14
3 files changed, 10 insertions, 8 deletions
diff --git a/lib/version.pm b/lib/version.pm
index 39695444ec..0c888cd1f5 100644
--- a/lib/version.pm
+++ b/lib/version.pm
@@ -12,7 +12,7 @@ use vars qw(@ISA $VERSION $CLASS @EXPORT);
@EXPORT = qw(qv);
-$VERSION = 0.41; # stop using CVS and switch to subversion
+$VERSION = 0.42; # stop using CVS and switch to subversion
$CLASS = 'version';
diff --git a/lib/version.t b/lib/version.t
index b9dbf04c7c..8636a3f38a 100644
--- a/lib/version.t
+++ b/lib/version.t
@@ -48,7 +48,7 @@ sub BaseTests {
# Test quoted number processing
diag "tests with quoted numbers" unless $ENV{PERL_CORE};
$version = $CLASS->new("5.005_03");
- is ( "$version" , "5.5_30" , '"5.005_03" eq "5.5_30"' );
+ is ( "$version" , "5.005_030" , '"5.005_03" eq "5.005_030"' );
$version = $CLASS->new("v1.23");
is ( "$version" , "1.23.0" , '"v1.23" eq "1.23.0"' );
diff --git a/util.c b/util.c
index cd28c197c4..396a40c6ef 100644
--- a/util.c
+++ b/util.c
@@ -3934,7 +3934,7 @@ Perl_scan_version(pTHX_ char *s, SV *rv, bool qv)
* floating point number, i.e. not quoted in any way
*/
if ( !qv && s > start+1 && saw_period == 1 ) {
- mult *= 100;
+ mult *= 100;
while ( s < end ) {
orev = rev;
rev += (*s - '0') * mult;
@@ -3983,7 +3983,7 @@ Perl_scan_version(pTHX_ char *s, SV *rv, bool qv)
*/
len = 2 - len;
while (len-- > 0)
- av_push((AV *)sv, newSViv(0));
+ av_push((AV *)sv, newSViv(0));
}
return s;
}
@@ -4117,10 +4117,11 @@ Perl_vnumify(pTHX_ SV *vs)
if ( len > 0 )
{
digit = SvIVX(*av_fetch((AV *)vs, len, 0));
-
- /* Don't display any additional trailing zeros */
if ( (int)PERL_ABS(digit) != 0 || len == 1 )
{
+ if ( digit < 0 ) /* alpha version */
+ Perl_sv_catpv(aTHX_ sv,"_");
+ /* Don't display additional trailing zeros */
Perl_sv_catpvf(aTHX_ sv,"%03d", (int)PERL_ABS(digit));
}
}
@@ -4191,12 +4192,13 @@ the original version contained 1 or more dots, respectively
SV *
Perl_vstringify(pTHX_ SV *vs)
{
- I32 len;
+ I32 len, digit;
if ( SvROK(vs) )
vs = SvRV(vs);
len = av_len((AV *)vs);
+ digit = SvIVX(*av_fetch((AV *)vs, len, 0));
- if ( len < 2 )
+ if ( len < 2 || ( len == 2 && digit < 0 ) )
return vnumify(vs);
else
return vnormal(vs);