summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSteve Peters <steve@fisharerojo.org>2008-03-12 14:20:49 +0000
committerSteve Peters <steve@fisharerojo.org>2008-03-12 14:20:49 +0000
commit89b662416fd2fc4345b55557b5165e415355e021 (patch)
tree44b66c4baeaab6c0d7df3785d601b1c57ee91c69 /ext
parentb8a47d640834061aba82b2fd0b7f99b0fc1929c8 (diff)
downloadperl-89b662416fd2fc4345b55557b5165e415355e021.tar.gz
Upgrade to Encode-2.24
p4raw-id: //depot/perl@33493
Diffstat (limited to 'ext')
-rw-r--r--ext/Encode/Changes24
-rw-r--r--ext/Encode/Encode.pm6
-rw-r--r--ext/Encode/Encode.xs2
-rw-r--r--ext/Encode/Makefile.PL2
-rw-r--r--ext/Encode/bin/ucmlint164
-rw-r--r--ext/Encode/lib/Encode/Alias.pm2
-rw-r--r--ext/Encode/lib/Encode/Config.pm3
-rw-r--r--ext/Encode/ucm/macJapanese.ucm4
8 files changed, 115 insertions, 92 deletions
diff --git a/ext/Encode/Changes b/ext/Encode/Changes
index 704b96c37e..4ceb2ba8fb 100644
--- a/ext/Encode/Changes
+++ b/ext/Encode/Changes
@@ -1,8 +1,28 @@
# Revision history for Perl extension Encode.
#
-# $Id: Changes,v 2.23 2007/05/29 18:15:32 dankogai Exp dankogai $
+# $Id: Changes,v 2.24 2008/03/12 09:51:11 dankogai Exp $
#
-$Revision: 2.23 $ $Date: 2007/05/29 18:15:32 $
+$Revision: 2.24 $ $Date: 2008/03/12 09:51:11 $
+! lib/Encode/Config.pm
+ adds and fixes also adds cp858 support.
+! Encode.pm encoding.pm lib/Encode/Alias.pm ucm/cp858.ucm
+ Merged perl@33486.
+ > Change 33486 by rgs@scipion on 2008/03/12 08:50:11
+ An unfortunate side-effect of Encode and Encode::Alias use'ing each
+ other, and Encode::Alias exporting functions into Encode for it to use
+ as methods, broke the loading of the find_alias() Encode method in some
+ cases since 5.10. Breaking the recursive inheritance fixes it.
+ Message-Id: <b77c1dce0803120151o4166c3a0gfcfd14681ab7e10d@mail.gmail.com>
+! Encode.pm
+ POD fix by tels
+ Message-Id: <200711281835.36125@bloodgate.com>
+! bin/ucmlint
+ Fix by MIYAGAWA via CodeRepos
+ http://coderepos.org/share/changeset/1791
+! encoding.pm t/mime_header_iso2022jp.t
+ ported back from Perl 5.10-RC1
+
+2.23 2007/05/29 18:15:32
! Encode.xs
got rid of global fallback_cb; encode_method() now takes one more
argument which is a coderef to fallback. This should make
diff --git a/ext/Encode/Encode.pm b/ext/Encode/Encode.pm
index 97a5a6fa46..c76fcdb849 100644
--- a/ext/Encode/Encode.pm
+++ b/ext/Encode/Encode.pm
@@ -1,10 +1,10 @@
#
-# $Id: Encode.pm,v 2.23 2007/05/29 18:15:32 dankogai Exp dankogai $
+# $Id: Encode.pm,v 2.24 2008/03/12 09:58:12 dankogai Exp dankogai $
#
package Encode;
use strict;
use warnings;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.23 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.24 $ =~ /(\d+)/g;
sub DEBUG () { 0 }
use XSLoader ();
XSLoader::load( __PACKAGE__, $VERSION );
@@ -734,7 +734,7 @@ you're not interested in this, then bitwise-or the bitmask with it.
=back
-=Head2 coderef for CHECK
+=head2 coderef for CHECK
As of Encode 2.12 CHECK can also be a code reference which takes the
ord value of unmapped caharacter as an argument and returns a string
diff --git a/ext/Encode/Encode.xs b/ext/Encode/Encode.xs
index 5acdc7588f..1424071f3a 100644
--- a/ext/Encode/Encode.xs
+++ b/ext/Encode/Encode.xs
@@ -1,5 +1,5 @@
/*
- $Id: Encode.xs,v 2.14 2007/05/29 18:15:32 dankogai Exp dankogai $
+ $Id: Encode.xs,v 2.14 2007/05/29 18:15:32 dankogai Exp $
*/
#define PERL_NO_GET_CONTEXT
diff --git a/ext/Encode/Makefile.PL b/ext/Encode/Makefile.PL
index d02bc41ff3..6b7d582691 100644
--- a/ext/Encode/Makefile.PL
+++ b/ext/Encode/Makefile.PL
@@ -1,5 +1,5 @@
#
-# $Id: Makefile.PL,v 2.5 2007/05/29 18:15:32 dankogai Exp dankogai $
+# $Id: Makefile.PL,v 2.5 2007/05/29 18:15:32 dankogai Exp $
#
use 5.007003;
use strict;
diff --git a/ext/Encode/bin/ucmlint b/ext/Encode/bin/ucmlint
index c5d755b74a..622376d885 100644
--- a/ext/Encode/bin/ucmlint
+++ b/ext/Encode/bin/ucmlint
@@ -1,10 +1,10 @@
#!/usr/local/bin/perl
#
-# $Id: ucmlint,v 2.1 2006/05/03 18:24:10 dankogai Exp $
+# $Id: ucmlint,v 2.2 2008/03/12 09:51:11 dankogai Exp $
#
use strict;
-our $VERSION = do { my @r = (q$Revision: 2.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+our $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Getopt::Std;
our %Opt;
@@ -30,7 +30,7 @@ $0 -[Dehfv] [ucm files ...]
}
$| = 1;
-my (%Hdr, %U2E, %E2U);
+my (%Hdr, %U2E, %E2U, %Fallback);
my $in_charmap = 0;
my $nerror = 0;
my $nwarning = 0;
@@ -39,92 +39,94 @@ sub nit($;$){
my ($msg, $level) = @_;
my $lstr;
if ($level == 2){
- $lstr = 'notice';
+ $lstr = 'notice';
}elsif ($level == 1){
- $lstr = 'warning'; $nwarning++;
+ $lstr = 'warning'; $nwarning++;
}else{
- $lstr = 'error'; $nerror++;
+ $lstr = 'error'; $nerror++;
}
print "$ARGV:$lstr in line $.: $msg\n";
}
for $ARGV (@ARGV){
open UCM, $ARGV or die "$ARGV:$!";
- %Hdr = %U2E = %E2U = ();
+ %Hdr = %U2E = %E2U = %Fallback = ();
$in_charmap = $nerror = $nwarning = 0;
$. = 0;
while(<UCM>){
- chomp;
- s/\s*#.*$//o; /^$/ and next;
- if ($_ eq "CHARMAP"){
- $in_charmap = 1;
- for my $must (qw/code_set_name mb_cur_min mb_cur_max/){
- exists $Hdr{$must} or nit "<$must> nonexistent";
- }
- $Hdr{mb_cur_min} > $Hdr{mb_cur_max}
- and nit sprintf("mb_cur_min(%d) > mb_cur_max(%d)",
- $Hdr{mb_cur_min},$Hdr{mb_cur_max});
- $in_charmap = 1;
- next;
- }
- unless ($in_charmap){
- my($hkey, $hvalue) = /^<(\S+)>\s+[\"\']?([^\"\']+)/o or next;
- $Opt{D} and warn "$hkey => $hvalue";
- if ($hkey eq "code_set_name"){ # name check
- exists $Hdr{code_set_name}
- and nit "Duplicate <code_set_name>: $hkey";
- }
- if ($hkey eq "code_set_alias"){ # alias check
- $hvalue eq $Hdr{code_set_name}
- and nit qq(alias "$hvalue" is already in <code_set_name>);
- }
- $Hdr{$hkey} = $hvalue;
- }else{
- my $name = $Hdr{code_set_name};
- my($unistr, $encstr, $fb) = /^(\S+)\s+(\S+)\s(\S+)/o or next;
- $Opt{v} and nit $_, 2;
- my $uni = uniparse($unistr);
- my $enc = encparse($encstr);
- $fb =~ /^\|([0123])$/ or nit "malformed fallback: $fb";
- $fb = $1;
- $Opt{f} and $fb = 0;
- unless ($fb == 1){ # check uni -> enc
- if (exists $U2E{$uni}){
- nit "dupe encode map: U$uni => $U2E{$uni} and $enc", 1;
- }else{
- $U2E{$uni} = $enc;
- if ($Opt{e} and $fb != 3) {
- my $e = hex2enc($enc);
- my $u = hex2uni($uni);
- my $eu = Encode::encode($name, $u);
- $e eq $eu
- or nit qq(encode('$name', $uni) != $enc);
+ chomp;
+ s/\s*#.*$//o; /^$/ and next;
+ if ($_ eq "CHARMAP"){
+ $in_charmap = 1;
+ for my $must (qw/code_set_name mb_cur_min mb_cur_max/){
+ exists $Hdr{$must} or nit "<$must> nonexistent";
}
+ $Hdr{mb_cur_min} > $Hdr{mb_cur_max}
+ and nit sprintf("mb_cur_min(%d) > mb_cur_max(%d)",
+ $Hdr{mb_cur_min},$Hdr{mb_cur_max});
+ $in_charmap = 1;
+ next;
}
- }
- unless ($fb == 3){ # check enc -> uni
- if (exists $E2U{$enc}){
- nit "dupe decode map: $enc => U$E2U{$enc} and U$uni", 1;
+ unless ($in_charmap){
+ my($hkey, $hvalue) = /^<(\S+)>\s+[\"\']?([^\"\']+)/o or next;
+ $Opt{D} and warn "$hkey => $hvalue";
+ if ($hkey eq "code_set_name"){ # name check
+ exists $Hdr{code_set_name}
+ and nit "Duplicate <code_set_name>: $hkey";
+ }
+ if ($hkey eq "code_set_alias"){ # alias check
+ $hvalue eq $Hdr{code_set_name}
+ and nit qq(alias "$hvalue" is already in <code_set_name>);
+ }
+ $Hdr{$hkey} = $hvalue;
}else{
- $E2U{$enc} = $uni;
- if ($Opt{e} and $fb != 1) {
- my $e = hex2enc($enc);
- my $u = hex2uni($uni);
- $Opt{D} and warn "$uni, $enc";
- my $de = Encode::decode($name, $e);
- $de eq $u
- or nit qq(decode('$name', $enc) != $uni);
+ my $name = $Hdr{code_set_name};
+ my($unistr, $encstr, $fb) = /^(\S+)\s+(\S+)\s(\S+)/o or next;
+ $Opt{v} and nit $_, 2;
+ my $uni = uniparse($unistr);
+ my $enc = encparse($encstr);
+ $fb =~ /^\|([0123])$/ or nit "malformed fallback: $fb";
+ $fb = $1;
+ $Opt{f} and $fb = 0;
+ unless ($fb == 3){ # check uni -> enc
+ if (exists $U2E{$uni}){
+ nit "dupe encode map: U$uni => $U2E{$uni} and $enc", 1;
+ }else{
+ $U2E{$uni} = $enc;
+ $Fallback{$uni}{$enc} = 1 if $fb == 1;
+ if ($Opt{e}) {
+ my $e = hex2enc($enc);
+ my $u = hex2uni($uni);
+ my $eu = Encode::encode($name, $u);
+ $e eq $eu
+ or nit qq(encode('$name', $uni) != $enc);
+ }
+ }
}
+ unless ($fb == 1){ # check enc -> uni
+ if (exists $E2U{$enc}){
+ nit "dupe decode map: $enc => U$E2U{$enc} and U$uni", 1;
+ }else{
+ $E2U{$enc} = $uni;
+ $Fallback{$enc}{$uni} = 1 if $fb == 3;
+ if ($Opt{e}) {
+ my $e = hex2enc($enc);
+ my $u = hex2uni($uni);
+ $Opt{D} and warn "$uni, $enc";
+ my $de = Encode::decode($name, $e);
+ $de eq $u
+ or nit qq(decode('$name', $enc) != $uni);
+ }
+ }
+ }
+ # warn "$uni, $enc, $fb";
}
- }
- # warn "$uni, $enc, $fb";
- }
}
$in_charmap or nit "Where is CHARMAP?";
checkRT();
printf ("$ARGV: %s error%s found\n",
- ($nerror == 0 ? 'no' : $nerror),
- ($nerror > 1 ? 's' : ''));
+ ($nerror == 0 ? 'no' : $nerror),
+ ($nerror > 1 ? 's' : ''));
}
exit;
@@ -138,14 +140,14 @@ sub hex2uni{
sub checkRT{
for my $uni (keys %E2U){
- my $enc = $U2E{$uni} or next; # okay
- $E2U{$U2E{$uni}} eq $uni or
- nit "RT failure: U$uni => $enc =>U$E2U{$U2E{$uni}}";
+ my $enc = $U2E{$uni} or next; # okay
+ $E2U{$U2E{$uni}} eq $uni or $Fallback{$uni}{$enc} or
+ nit "RT failure: U$uni => $enc =>U$E2U{$U2E{$uni}}";
}
for my $enc (keys %E2U){
- my $uni = $E2U{$enc} or next; # okay
- $U2E{$E2U{$enc}} eq $enc or
- nit "RT failure: $enc => U$uni => $U2E{$E2U{$enc}}";
+ my $uni = $E2U{$enc} or next; # okay
+ $U2E{$E2U{$enc}} eq $enc or $Fallback{$enc}{$uni} or
+ nit "RT failure: $enc => U$uni => $U2E{$E2U{$enc}}";
}
}
@@ -155,8 +157,8 @@ sub uniparse{
my @u;
push @u, $1 while($str =~ /\G<U(.*?)>/ig);
for my $u (@u){
- $u =~ /^([0-9A-Za-z]+)$/o
- or nit "malformed Unicode character: $u";
+ $u =~ /^([0-9A-Za-z]+)$/o
+ or nit "malformed Unicode character: $u";
}
return join(',', @u);
}
@@ -165,10 +167,10 @@ sub encparse{
my $str = shift;
my @e;
for my $e (split /\\x/io, $str){
- $e or next; # first \x
- $e =~ /^([0-9A-Za-z]{1,2})$/io
- or nit "Hex $e in $str is bogus";
- push @e, $1;
+ $e or next; # first \x
+ $e =~ /^([0-9A-Za-z]{1,2})$/io
+ or nit "Hex $e in $str is bogus";
+ push @e, $1;
}
return join(',', @e);
}
diff --git a/ext/Encode/lib/Encode/Alias.pm b/ext/Encode/lib/Encode/Alias.pm
index 24e7d8237f..403293bcba 100644
--- a/ext/Encode/lib/Encode/Alias.pm
+++ b/ext/Encode/lib/Encode/Alias.pm
@@ -2,7 +2,7 @@ package Encode::Alias;
use strict;
use warnings;
no warnings 'redefine';
-our $VERSION = '2.07_01'; #do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
sub DEBUG () { 0 }
use base qw(Exporter);
diff --git a/ext/Encode/lib/Encode/Config.pm b/ext/Encode/lib/Encode/Config.pm
index c9f431bb1c..1286a47999 100644
--- a/ext/Encode/lib/Encode/Config.pm
+++ b/ext/Encode/lib/Encode/Config.pm
@@ -2,7 +2,7 @@
# Demand-load module list
#
package Encode::Config;
-our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use strict;
use warnings;
@@ -38,6 +38,7 @@ our %ExtModule = (
'cp855' => 'Encode::Byte',
'cp856' => 'Encode::Byte',
'cp857' => 'Encode::Byte',
+ 'cp858' => 'Encode::Byte',
'cp860' => 'Encode::Byte',
'cp861' => 'Encode::Byte',
'cp862' => 'Encode::Byte',
diff --git a/ext/Encode/ucm/macJapanese.ucm b/ext/Encode/ucm/macJapanese.ucm
index 892d3f7dbe..2ba94103aa 100644
--- a/ext/Encode/ucm/macJapanese.ucm
+++ b/ext/Encode/ucm/macJapanese.ucm
@@ -1,5 +1,5 @@
#
-# $Id: macJapanese.ucm,v 2.0 2004/05/16 20:55:27 dankogai Exp $
+# $Id: macJapanese.ucm,v 2.1 2008/03/12 09:51:11 dankogai Exp $
#
# Original table can be obtained at
# http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/JAPANESE.TXT
@@ -135,7 +135,7 @@ CHARMAP
<U007B> \x7B |0 # LEFT CURLY BRACKET
<U007C> \x7C |0 # VERTICAL LINE
<U007D> \x7D |0 # RIGHT CURLY BRACKET
-<U007E> \x7E |0 # TILDE # Apple change from standard Shift-JIS
+<U007E> \x7E |0 # TILDE # Apple change from standard Shift_JIS
<U00A0> \xA0 |0 # NO-BREAK SPACE # Apple addition
<U00A2> \x81\x91 |0 # CENT SIGN
<U00A3> \x81\x92 |0 # POUND SIGN