summaryrefslogtreecommitdiff
path: root/cpan
diff options
context:
space:
mode:
authorSteve Hay <steve.m.hay@googlemail.com>2014-05-06 20:40:56 +0100
committerSteve Hay <steve.m.hay@googlemail.com>2014-05-06 20:40:56 +0100
commitdc396cc29397b262d3cc1473ade4229c84e82ca3 (patch)
tree86ffb09680df8f668a1d1f31df41c1b05e4f3c0a /cpan
parentf751400fc758ae12ae31a028a617eea43132a3ec (diff)
downloadperl-dc396cc29397b262d3cc1473ade4229c84e82ca3.tar.gz
Upgrade to Encode-2.60
This upgrade includes the blead customizations from 080a704606 and 9e9002efd1 (amongst other changes) so that Perl 5.20.0 can ship with an official CPAN release of Encode.
Diffstat (limited to 'cpan')
-rw-r--r--cpan/Encode/Byte/Makefile.PL5
-rw-r--r--cpan/Encode/CN/Makefile.PL5
-rw-r--r--cpan/Encode/EBCDIC/Makefile.PL5
-rw-r--r--cpan/Encode/Encode.pm19
-rw-r--r--cpan/Encode/Encode.xs7
-rw-r--r--cpan/Encode/Encode/Makefile_PL.e2x5
-rw-r--r--cpan/Encode/JP/Makefile.PL5
-rw-r--r--cpan/Encode/KR/Makefile.PL5
-rw-r--r--cpan/Encode/Symbol/Makefile.PL5
-rw-r--r--cpan/Encode/TW/Makefile.PL5
-rw-r--r--cpan/Encode/Unicode/Unicode.xs4
-rw-r--r--cpan/Encode/bin/enc2xs7
-rw-r--r--cpan/Encode/bin/piconv10
13 files changed, 65 insertions, 22 deletions
diff --git a/cpan/Encode/Byte/Makefile.PL b/cpan/Encode/Byte/Makefile.PL
index 4b2a2bf07a..58deaf39a6 100644
--- a/cpan/Encode/Byte/Makefile.PL
+++ b/cpan/Encode/Byte/Makefile.PL
@@ -117,8 +117,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/CN/Makefile.PL b/cpan/Encode/CN/Makefile.PL
index 3fd595a298..efd2edb90f 100644
--- a/cpan/Encode/CN/Makefile.PL
+++ b/cpan/Encode/CN/Makefile.PL
@@ -93,8 +93,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/EBCDIC/Makefile.PL b/cpan/Encode/EBCDIC/Makefile.PL
index 77dff98286..7a3a4cb89c 100644
--- a/cpan/Encode/EBCDIC/Makefile.PL
+++ b/cpan/Encode/EBCDIC/Makefile.PL
@@ -74,8 +74,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm
index a5be18bc2e..9dc970b299 100644
--- a/cpan/Encode/Encode.pm
+++ b/cpan/Encode/Encode.pm
@@ -1,10 +1,10 @@
#
-# $Id: Encode.pm,v 2.57 2014/01/03 04:51:39 dankogai Exp $
+# $Id: Encode.pm,v 2.60 2014/04/29 16:26:49 dankogai Exp dankogai $
#
package Encode;
use strict;
use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.57_01 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.60 $ =~ /(\d+)/g;
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
use XSLoader ();
XSLoader::load( __PACKAGE__, $VERSION );
@@ -801,13 +801,24 @@ If you're not interested in this, then bitwise-OR it with the bitmask.
=head2 coderef for CHECK
As of C<Encode> 2.12, C<CHECK> can also be a code reference which takes the
-ordinal value of the unmapped character as an argument and returns a string
-that represents the fallback character. For instance:
+ordinal value of the unmapped character as an argument and returns
+octets that represent the fallback character. For instance:
$ascii = encode("ascii", $utf8, sub{ sprintf "<U+%04X>", shift });
Acts like C<FB_PERLQQ> but U+I<XXXX> is used instead of C<\x{I<XXXX>}>.
+Even the fallback for C<decode> must return octets, which are
+then decoded with the character encoding that C<decode> accepts. So for
+example if you wish to decode octests as UTF-8, and use ISO-8859-15 as
+a fallback for bytes that are not valid UTF-8, you could write
+
+ $str = decode 'UTF-8', $octets, sub {
+ my $tmp = chr shift;
+ from_to $tmp, 'ISO-8859-15', 'UTF-8';
+ return $tmp;
+ };
+
=head1 Defining Encodings
To define a new encoding, use:
diff --git a/cpan/Encode/Encode.xs b/cpan/Encode/Encode.xs
index 0ecd094f31..18c982ac47 100644
--- a/cpan/Encode/Encode.xs
+++ b/cpan/Encode/Encode.xs
@@ -1,5 +1,5 @@
/*
- $Id: Encode.xs,v 2.24 2013/08/29 16:47:39 dankogai Exp $
+ $Id: Encode.xs,v 2.27 2014/04/29 16:25:06 dankogai Exp dankogai $
*/
#define PERL_NO_GET_CONTEXT
@@ -44,8 +44,11 @@ Encode_XSEncoding(pTHX_ encode_t * enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))), stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i]) {
diff --git a/cpan/Encode/Encode/Makefile_PL.e2x b/cpan/Encode/Encode/Makefile_PL.e2x
index 53c2dd3a75..b78656769d 100644
--- a/cpan/Encode/Encode/Makefile_PL.e2x
+++ b/cpan/Encode/Encode/Makefile_PL.e2x
@@ -110,8 +110,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/JP/Makefile.PL b/cpan/Encode/JP/Makefile.PL
index 10c2bb6221..cb671b60d4 100644
--- a/cpan/Encode/JP/Makefile.PL
+++ b/cpan/Encode/JP/Makefile.PL
@@ -93,8 +93,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/KR/Makefile.PL b/cpan/Encode/KR/Makefile.PL
index 6934b8b622..fa6f0d8042 100644
--- a/cpan/Encode/KR/Makefile.PL
+++ b/cpan/Encode/KR/Makefile.PL
@@ -91,8 +91,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/Symbol/Makefile.PL b/cpan/Encode/Symbol/Makefile.PL
index 945136be6d..b525610369 100644
--- a/cpan/Encode/Symbol/Makefile.PL
+++ b/cpan/Encode/Symbol/Makefile.PL
@@ -79,8 +79,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/TW/Makefile.PL b/cpan/Encode/TW/Makefile.PL
index f2cbeea991..c7711d9655 100644
--- a/cpan/Encode/TW/Makefile.PL
+++ b/cpan/Encode/TW/Makefile.PL
@@ -89,8 +89,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/Unicode/Unicode.xs b/cpan/Encode/Unicode/Unicode.xs
index c2a8ec2a8d..cf42ab8674 100644
--- a/cpan/Encode/Unicode/Unicode.xs
+++ b/cpan/Encode/Unicode/Unicode.xs
@@ -1,5 +1,5 @@
/*
- $Id: Unicode.xs,v 2.10 2013/04/26 18:30:46 dankogai Exp $
+ $Id: Unicode.xs,v 2.11 2014/04/29 16:25:06 dankogai Exp dankogai $
*/
#define PERL_NO_GET_CONTEXT
@@ -79,7 +79,7 @@ enc_unpack(pTHX_ U8 **sp, U8 *e, STRLEN size, U8 endian)
if (endian == 'v')
break;
v |= (*s++ << 16);
- v |= (*s++ << 24);
+ v |= ((UV)*s++ << 24);
break;
default:
croak("Unknown endian %c",(char) endian);
diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs
index 25ce6f0253..966c456765 100644
--- a/cpan/Encode/bin/enc2xs
+++ b/cpan/Encode/bin/enc2xs
@@ -10,7 +10,7 @@ use warnings;
use Getopt::Std;
use Config;
my @orig_ARGV = @ARGV;
-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.12 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
# These may get re-ordered.
# RAW is a do_now as inserted by &enter
@@ -313,8 +313,11 @@ Encode_XSEncoding(pTHX_ encode_t *enc)
{
dSP;
HV *stash = gv_stashpv("Encode::XS", TRUE);
- SV *sv = sv_bless(newRV_noinc(newSViv(PTR2IV(enc))),stash);
+ SV *iv = newSViv(PTR2IV(enc));
+ SV *sv = sv_bless(newRV_noinc(iv),stash);
int i = 0;
+ SvFLAGS(iv) |= SVp_POK;
+ SvPVX(iv) = enc->name[0];
PUSHMARK(sp);
XPUSHs(sv);
while (enc->name[i])
diff --git a/cpan/Encode/bin/piconv b/cpan/Encode/bin/piconv
index 74adca4bc7..669304b68c 100644
--- a/cpan/Encode/bin/piconv
+++ b/cpan/Encode/bin/piconv
@@ -1,5 +1,5 @@
#!./perl
-# $Id: piconv,v 2.5 2013/04/26 18:30:46 dankogai Exp $
+# $Id: piconv,v 2.6 2014/03/28 02:37:42 dankogai Exp $
#
use 5.8.0;
use strict;
@@ -68,14 +68,16 @@ To: $to => $cto
EOT
}
-my %use_bom = map { $_ => 1 } qw/UTF-16 UTF-32/;
+my %use_bom =
+ map { $_ => 1 } qw/UTF-16 UTF-16BE UTF-16LE UTF-32 UTF-32BE UTF-32LE/;
# we do not use <> (or ARGV) for the sake of binmode()
@ARGV or push @ARGV, \*STDIN;
unless ( $scheme eq 'perlio' ) {
binmode STDOUT;
- my $need2slurp = $use_bom{ find_encoding($to)->name };
+ my $need2slurp = $use_bom{ find_encoding($to)->name }
+ || $use_bom{ find_encoding($from)->name };
for my $argv (@ARGV) {
my $ifh = ref $argv ? $argv : undef;
$ifh or open $ifh, "<", $argv or warn "Can't open $argv: $!" and next;
@@ -169,7 +171,7 @@ The following are mainly of interest to Encode hackers:
-D,--debug show debug information
-S,--scheme scheme use the scheme for conversion
Those are handy when you can only see ASCII characters:
- -p,--perlqq transliterate characters missing in encoding to \x{HHHH}
+ -p,--perlqq transliterate characters missing in encoding to \\x{HHHH}
where HHHH is the hexadecimal Unicode code point
--htmlcref transliterate characters missing in encoding to &#NNN;
where NNN is the decimal Unicode code point