This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
upgrade cpan/JSON-PP from 4.00 to 4.02
authorDavid Mitchell <davem@iabyn.com>
Sat, 23 Feb 2019 12:27:17 +0000 (12:27 +0000)
committerDavid Mitchell <davem@iabyn.com>
Sat, 23 Feb 2019 12:54:17 +0000 (12:54 +0000)
4.02 2019-02-23
    - fix a test that breaks if perl is compiled with
      -Dquadmath (RT-128589)

4.01 2019-02-22
    - allow to pass indent_length to json_pp (GH#46)

META.json
Porting/Maintainers.pl
cpan/JSON-PP/bin/json_pp
cpan/JSON-PP/lib/JSON/PP.pm
cpan/JSON-PP/t/011_pc_expo.t

index 5216ba9..cacbc8a 100644 (file)
--- a/META.json
+++ b/META.json
       }
    },
    "version" : "5.029009",
       }
    },
    "version" : "5.029009",
-   "x_serialization_backend" : "JSON::PP version 4.00"
+   "x_serialization_backend" : "JSON::PP version 4.02"
 }
 }
index 5775b11..1bff10b 100755 (executable)
@@ -651,7 +651,7 @@ use File::Glob qw(:case);
     },
 
     'JSON::PP' => {
     },
 
     'JSON::PP' => {
-        'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.00.tar.gz',
+        'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.02.tar.gz',
         'FILES'        => q[cpan/JSON-PP],
     },
 
         'FILES'        => q[cpan/JSON-PP],
     },
 
index 6221315..5f956b1 100644 (file)
@@ -10,7 +10,7 @@ use JSON::PP ();
 
 my %allow_json_opt = map { $_ => 1 } qw(
     ascii latin1 utf8 pretty indent space_before space_after relaxed canonical allow_nonref
 
 my %allow_json_opt = map { $_ => 1 } qw(
     ascii latin1 utf8 pretty indent space_before space_after relaxed canonical allow_nonref
-    allow_singlequote allow_barekey allow_bignum loose escape_slash
+    allow_singlequote allow_barekey allow_bignum loose escape_slash indent_length
 );
 
 
 );
 
 
@@ -31,12 +31,20 @@ if ( $version ) {
 
 $json_opt = '' if $json_opt eq '-';
 
 
 $json_opt = '' if $json_opt eq '-';
 
-my @json_opt = grep { $allow_json_opt{ $_ } or die "'$_' is not a valid json option" } split/,/, $json_opt;
+my %json_opt;
+for my $opt (split /,/, $json_opt) {
+    my ($key, $value) = split /=/, $opt, 2;
+    $value = 1 unless defined $value;
+    die "'$_' is not a valid json option" unless $allow_json_opt{$key};
+    $json_opt{$key} = $value;
+}
 
 my %F = (
    'json' => sub {
       my $json = JSON::PP->new;
 
 my %F = (
    'json' => sub {
       my $json = JSON::PP->new;
-      $json->$_() for @json_opt;
+      for my $key (keys %json_opt) {
+        $json->$key($json_opt{$key});
+      }
       $json->decode( $_ );
    },
    'eval' => sub {
       $json->decode( $_ );
    },
    'eval' => sub {
@@ -51,8 +59,10 @@ my %T = (
    'null' => sub { "" },
    'json' => sub {
       my $json = JSON::PP->new->utf8;
    'null' => sub { "" },
    'json' => sub {
       my $json = JSON::PP->new->utf8;
-      $json->$_() for @json_opt;
-      $json->canonical if grep {$_ eq 'pretty'} @json_opt;
+      for my $key (keys %json_opt) {
+        $json->$key($json_opt{$key});
+      }
+      $json->canonical if $json_opt{pretty};
       $json->encode( $_ );
    },
    'dumper' => sub {
       $json->encode( $_ );
    },
    'dumper' => sub {
index 6adb57f..d8b7ab3 100644 (file)
@@ -14,7 +14,7 @@ use JSON::PP::Boolean;
 use Carp ();
 #use Devel::Peek;
 
 use Carp ();
 #use Devel::Peek;
 
-$JSON::PP::VERSION = '4.00';
+$JSON::PP::VERSION = '4.02';
 
 @JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
 
 
 @JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
 
@@ -1773,7 +1773,7 @@ JSON::PP - JSON::XS compatible pure-Perl module.
 
 =head1 VERSION
 
 
 =head1 VERSION
 
-    4.00
+    4.02
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
index 42fe328..3167ef9 100644 (file)
@@ -37,7 +37,7 @@ $js  = q|[1.01e+30]|;
 $obj = $pc->decode($js);
 is($obj->[0], 1.01e+30, 'digit 1.01e+30');
 $js = $pc->encode($obj);
 $obj = $pc->decode($js);
 is($obj->[0], 1.01e+30, 'digit 1.01e+30');
 $js = $pc->encode($obj);
-like($js,qr/\[1.01[Ee]\+0?30\]/, 'digit 1.01e+30');
+like($js,qr/\[(?:1.01[Ee]\+0?30|1010000000000000000000000000000)]/, 'digit 1.01e+30'); # RT-128589 (-Duselongdouble or -Dquadmath) 
 
 my $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
 
 
 my $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);