This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade Encode from version 2.73 to 2.75
authorSteve Hay <steve.m.hay@googlemail.com>
Tue, 30 Jun 2015 12:37:33 +0000 (13:37 +0100)
committerSteve Hay <steve.m.hay@googlemail.com>
Tue, 30 Jun 2015 12:37:33 +0000 (13:37 +0100)
16 files changed:
Porting/Maintainers.pl
cpan/Encode/Byte/Makefile.PL
cpan/Encode/CN/Makefile.PL
cpan/Encode/EBCDIC/Makefile.PL
cpan/Encode/Encode.pm
cpan/Encode/JP/Makefile.PL
cpan/Encode/KR/Makefile.PL
cpan/Encode/Makefile.PL
cpan/Encode/Symbol/Makefile.PL
cpan/Encode/TW/Makefile.PL
cpan/Encode/Unicode/Unicode.pm
cpan/Encode/Unicode/Unicode.xs
cpan/Encode/encoding.pm
cpan/Encode/lib/Encode/MIME/Header.pm
pod/perldelta.pod
t/porting/customized.dat

index c0497e0..21a7655 100755 (executable)
@@ -379,10 +379,8 @@ use File::Glob qw(:case);
     },
 
     'Encode' => {
-        'DISTRIBUTION' => 'DANKOGAI/Encode-2.73.tar.gz',
+        'DISTRIBUTION' => 'DANKOGAI/Encode-2.75.tar.gz',
         'FILES'        => q[cpan/Encode],
-        # tmp hack to make blead compile under -pedantic
-        'CUSTOMIZED'   => [ qw[ bin/enc2xs ] ],
     },
 
     'encoding::warnings' => {
index 85b2ccd..b8d09e6 100644 (file)
@@ -88,7 +88,7 @@ sub post_initialize
         if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
-    foreach my $table (keys %tables) {
+    foreach my $table (sort keys %tables) {
     push (@{$self->{'C'}},"$table.c");
     # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
     # get built.
@@ -157,7 +157,7 @@ sub postamble
     my $dir  = $self->catdir($self->updir,'ucm');
     my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
@@ -165,7 +165,7 @@ sub postamble
     $str .= "$name\$(OBJ_EXT) : $name.c\n\n";
 
     my $enc2xs = $self->catfile($self->updir,'bin', 'enc2xs');
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index 245140a..094f016 100644 (file)
@@ -64,7 +64,7 @@ sub post_initialize
         if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
-    foreach my $table (keys %tables) {
+    foreach my $table (sort keys %tables) {
     push (@{$self->{'C'}},"$table.c");
     # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
     # get built.
@@ -133,7 +133,7 @@ sub postamble
     my $dir  = $self->catdir($self->updir,'ucm');
     my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
@@ -141,7 +141,7 @@ sub postamble
     $str .= "$name\$(OBJ_EXT) : $name.c\n\n";
 
     my $enc2xs = $self->catfile($self->updir,'bin', 'enc2xs');
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index f746c0c..e9f59a6 100644 (file)
@@ -45,7 +45,7 @@ sub post_initialize
         if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
-    foreach my $table (keys %tables) {
+    foreach my $table (sort keys %tables) {
     push (@{$self->{'C'}},"$table.c");
     # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
     # get built.
@@ -114,7 +114,7 @@ sub postamble
     my $dir  = $self->catdir($self->updir,'ucm');
     my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
@@ -122,7 +122,7 @@ sub postamble
     $str .= "$name\$(OBJ_EXT) : $name.c\n\n";
 
     my $enc2xs = $self->catfile($self->updir,'bin', 'enc2xs');
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index 1c1efd5..e94b3e9 100644 (file)
@@ -1,10 +1,10 @@
 #
-# $Id: Encode.pm,v 2.73 2015/04/15 23:14:01 dankogai Exp dankogai $
+# $Id: Encode.pm,v 2.75 2015/06/30 09:57:15 dankogai Exp $
 #
 package Encode;
 use strict;
 use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.73 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.75 $ =~ /(\d+)/g;
 use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
 use XSLoader ();
 XSLoader::load( __PACKAGE__, $VERSION );
index 7a7d5ac..da1807b 100644 (file)
@@ -64,7 +64,7 @@ sub post_initialize
         if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
-    foreach my $table (keys %tables) {
+    foreach my $table (sort keys %tables) {
     push (@{$self->{'C'}},"$table.c");
     # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
     # get built.
@@ -133,7 +133,7 @@ sub postamble
     my $dir  = $self->catdir($self->updir,'ucm');
     my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
@@ -141,7 +141,7 @@ sub postamble
     $str .= "$name\$(OBJ_EXT) : $name.c\n\n";
 
     my $enc2xs = $self->catfile($self->updir,'bin', 'enc2xs');
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index 0095ece..85c056b 100644 (file)
@@ -62,7 +62,7 @@ sub post_initialize
         if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
-    foreach my $table (keys %tables) {
+    foreach my $table (sort keys %tables) {
     push (@{$self->{'C'}},"$table.c");
     # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
     # get built.
@@ -131,7 +131,7 @@ sub postamble
     my $dir  = $self->catdir($self->updir,'ucm');
     my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
@@ -139,7 +139,7 @@ sub postamble
     $str .= "$name\$(OBJ_EXT) : $name.c\n\n";
 
     my $enc2xs = $self->catfile($self->updir,'bin', 'enc2xs');
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index 7da9329..0ee181b 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.PL,v 2.13 2015/02/05 10:53:00 dankogai Exp $
+# $Id: Makefile.PL,v 2.14 2015/06/25 00:49:23 dankogai Exp $
 #
 use 5.007003;
 use strict;
@@ -9,7 +9,7 @@ use File::Spec;
 
 # Just for sure :)
 my %ARGV = map { my @r = split /=/,$_; defined $r[1] or $r[1]=1; @r } @ARGV;
-$ARGV{DEBUG} and warn "$_ => $ARGV{$_}\n" for keys  %ARGV;
+$ARGV{DEBUG} and warn "$_ => $ARGV{$_}\n" for sort keys  %ARGV;
 $ENV{PERL_CORE} ||= $ARGV{PERL_CORE} if $ARGV{PERL_CORE};
 
 my %tables = 
@@ -82,7 +82,7 @@ sub post_initialize
     # Reset the variable
     $self->{'O_FILES'} = [sort keys %o];
     my @files;
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     foreach my $ext (qw($(OBJ_EXT) .c .h .exh .fnm))
     {
@@ -103,12 +103,12 @@ sub postamble
     $str  .= "# (except Encode.c), but on .h and .exh files written by enc2xs\n";
     $str  .= $^O eq 'MacOS' ? 'Encode.c.{$(MACPERL_BUILD_EXT_STATIC)}.o :' : 'Encode$(OBJ_EXT) :';
     $str  .= ' Encode.c';
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
     $str .= "\n\n";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index 6be7fb6..3c01be2 100644 (file)
@@ -50,7 +50,7 @@ sub post_initialize
         if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
-    foreach my $table (keys %tables) {
+    foreach my $table (sort keys %tables) {
     push (@{$self->{'C'}},"$table.c");
     # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
     # get built.
@@ -119,7 +119,7 @@ sub postamble
     my $dir  = $self->catdir($self->updir,'ucm');
     my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
@@ -127,7 +127,7 @@ sub postamble
     $str .= "$name\$(OBJ_EXT) : $name.c\n\n";
 
     my $enc2xs = $self->catfile($self->updir,'bin', 'enc2xs');
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index 1f94d79..a9f7254 100644 (file)
@@ -60,7 +60,7 @@ sub post_initialize
         if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
-    foreach my $table (keys %tables) {
+    foreach my $table (sort keys %tables) {
     push (@{$self->{'C'}},"$table.c");
     # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
     # get built.
@@ -129,7 +129,7 @@ sub postamble
     my $dir  = $self->catdir($self->updir,'ucm');
     my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     $str .= " $table.c";
     }
@@ -137,7 +137,7 @@ sub postamble
     $str .= "$name\$(OBJ_EXT) : $name.c\n\n";
 
     my $enc2xs = $self->catfile($self->updir,'bin', 'enc2xs');
-    foreach my $table (keys %tables)
+    foreach my $table (sort keys %tables)
     {
     my $numlines = 1;
     my $lengthsofar = length($str);
index 6b35cb7..3d9fb87 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 no warnings 'redefine';
 
-our $VERSION = do { my @r = ( q$Revision: 2.9 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.13 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
 
 use XSLoader;
 XSLoader::load( __PACKAGE__, $VERSION );
index 846ab3a..5f3bceb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- $Id: Unicode.xs,v 2.11 2014/04/29 16:25:06 dankogai Exp $
+ $Id: Unicode.xs,v 2.12 2015/06/25 00:49:23 dankogai Exp $
  */
 
 #define PERL_NO_GET_CONTEXT
@@ -125,6 +125,8 @@ PROTOTYPES: DISABLE
 
 #define attr(k, l)  (hv_exists((HV *)SvRV(obj),k,l) ? \
     *hv_fetch((HV *)SvRV(obj),k,l,0) : &PL_sv_undef)
+#define attr_true(k, l)  (hv_exists((HV *)SvRV(obj),k,l) ? \
+    SvTRUE(*hv_fetch((HV *)SvRV(obj),k,l,0)) : FALSE)
 
 void
 decode_xs(obj, str, check = 0)
@@ -171,7 +173,7 @@ CODE:
        }
 #if 1
        /* Update endian for next sequence */
-       if (SvTRUE(attr("renewed", 7))) {
+       if (attr_true("renewed", 7)) {
            hv_store((HV *)SvRV(obj),"endian",6,newSVpv((char *)&endian,1),0);
        }
 #endif
@@ -190,7 +192,7 @@ CODE:
        U8 *d;
        if (issurrogate(ord)) {
            if (ucs2 == -1) {
-               ucs2 = SvTRUE(attr("ucs2", 4));
+               ucs2 = attr_true("ucs2", 4);
            }
            if (ucs2 || size == 4) {
                if (check) {
@@ -336,7 +338,7 @@ CODE:
        enc_pack(aTHX_ result,size,endian,BOM_BE);
 #if 1
        /* Update endian for next sequence */
-       if (SvTRUE(attr("renewed", 7))) {
+       if (attr_true("renewed", 7)) {
            hv_store((HV *)SvRV(obj),"endian",6,newSVpv((char *)&endian,1),0);
        }
 #endif
@@ -352,7 +354,7 @@ CODE:
        if (size != 4 && invalid_ucs2(ord)) {
            if (!issurrogate(ord)) {
                if (ucs2 == -1) {
-                   ucs2 = SvTRUE(attr("ucs2", 4));
+                   ucs2 = attr_true("ucs2", 4);
                }
                if (ucs2 || ord > 0x10FFFF) {
                    if (check) {
index a2831eb..ae9512e 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: encoding.pm,v 2.15 2015/04/15 23:14:01 dankogai Exp dankogai $
+# $Id: encoding.pm,v 2.16 2015/06/30 09:55:44 dankogai Exp $
 package encoding;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.15 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.16 $ =~ /(\d+)/g;
 
 use Encode;
 use strict;
index b970b62..91dd03c 100644 (file)
@@ -3,7 +3,7 @@ use strict;
 use warnings;
 no warnings 'redefine';
 
-our $VERSION = do { my @r = ( q$Revision: 2.16 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.17 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
 use Encode qw(find_encoding encode_utf8 decode_utf8);
 use MIME::Base64;
 use Carp;
@@ -47,7 +47,7 @@ sub decode($$;$) {
     $str =~ s/(?:\r\n|[\r\n])[ \t]//gos;
 
     1 while ( $str =~
-        s/(=\?[-0-9A-Za-z_]+\?[Qq]\?)(.*?)\?=\1(.*?\?=)/$1$2$3/ )
+              s/(=\?[-0-9A-Za-z_]+\?[Qq]\?)([^?]*?)\?=\1([^?]*?\?=)/$1$2$3/ )
       ;    # Concat consecutive QP encoded mime headers
            # Fixes breaking inside multi-byte characters
 
index 2d461ef..7c0a835 100644 (file)
@@ -69,7 +69,7 @@ L<CPAN::Meta::YAML> has been upgraded from version 0.012 to 0.016.
 
 =item *
 
-L<Encode> has been upgraded from version 2.72 to 2.73.
+L<Encode> has been upgraded from version 2.72 to 2.75.
 
 =item *
 
index 000b11a..7cafb1b 100644 (file)
@@ -1,4 +1,3 @@
-Encode cpan/Encode/bin/enc2xs 8aadc8b4b267bc96231033fbdfcf18a3b827e907
 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm 7f4dfd0fe884bd42412bcf04ca80ef97b39c1d54
 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm bef099988b15fb0b2a1f5ac48c01af1f7f36d329
 ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm 8168e18f0e3ce3ece4bb7e7c72d57ec07c67c402