Data::Dumper fumbles negative numbers on 32-bit platforms where
Gurusamy Sarathy [Thu, 27 Apr 2000 18:05:11 +0000 (18:05 +0000)]
IV is >32bits

p4raw-id: //depot/perl@5970

ext/Data/Dumper/Dumper.xs
t/lib/dumper.t

index 990ea74..bb606f4 100644 (file)
@@ -584,8 +584,7 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
 
        if (SvIOK(val)) {
             STRLEN len;
-           i = SvIV(val);
-            (void) sprintf(tmpbuf, "%"IVdf, (IV)i);
+            (void) sprintf(tmpbuf, "%"IVdf, SvIV(val));
             len = strlen(tmpbuf);
            sv_catpvn(retval, tmpbuf, len);
        }
index 3167535..b9680bd 100755 (executable)
@@ -287,7 +287,7 @@ EOT
   package main;
   use Data::Dumper;
   $foo = 5;
-  @foo = (10,\*foo);
+  @foo = (-10,\*foo);
   %foo = (a=>1,b=>\$foo,c=>\@foo);
   $foo{d} = \%foo;
   $foo[2] = \%foo;
@@ -299,7 +299,7 @@ EOT
 #*::foo = \5;
 #*::foo = [
 #           #0
-#           10,
+#           -10,
 #           #1
 #           do{my $o},
 #           #2
@@ -330,7 +330,7 @@ EOT
 #$foo = \*::foo;
 #*::foo = \5;
 #*::foo = [
-#  10,
+#  -10,
 #  do{my $o},
 #  {
 #    'a' => 1,
@@ -356,7 +356,7 @@ EOT
 ##
   $WANT = <<'EOT';
 #@bar = (
-#  10,
+#  -10,
 #  \*::foo,
 #  {}
 #);
@@ -383,7 +383,7 @@ EOT
 ##
   $WANT = <<'EOT';
 #$bar = [
-#  10,
+#  -10,
 #  \*::foo,
 #  {}
 #];
@@ -411,7 +411,7 @@ EOT
   $WANT = <<'EOT';
 #$foo = \*::foo;
 #@bar = (
-#  10,
+#  -10,
 #  $foo,
 #  {
 #    a => 1,
@@ -433,7 +433,7 @@ EOT
   $WANT = <<'EOT';
 #$foo = \*::foo;
 #$bar = [
-#  10,
+#  -10,
 #  $foo,
 #  {
 #    a => 1,