summaryrefslogtreecommitdiff
path: root/ext/Encode
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2003-01-13 23:10:55 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2003-01-13 23:10:55 +0000
commit0f7c507f688c1f7ff05ce69abb8332c23e7ec07d (patch)
treef2a9b3106903e5b3fb9e87e5eea7e2237dee822a /ext/Encode
parent9646e71393b83497952a662971ad457dd66fbbd9 (diff)
downloadperl-0f7c507f688c1f7ff05ce69abb8332c23e7ec07d.tar.gz
Upgrade to Encode 1.84.
p4raw-id: //depot/perl@18478
Diffstat (limited to 'ext/Encode')
-rw-r--r--ext/Encode/Changes21
-rw-r--r--ext/Encode/Encode.pm7
-rw-r--r--ext/Encode/Encode.xs2
-rw-r--r--ext/Encode/Unicode/Unicode.xs32
-rw-r--r--ext/Encode/encoding.pm7
5 files changed, 44 insertions, 25 deletions
diff --git a/ext/Encode/Changes b/ext/Encode/Changes
index 60452d82ce..cc1615a7ba 100644
--- a/ext/Encode/Changes
+++ b/ext/Encode/Changes
@@ -1,9 +1,26 @@
# Revision history for Perl extension Encode.
#
-# $Id: Changes,v 1.83 2002/11/18 17:28:49 dankogai Exp dankogai $
+# $Id: Changes,v 1.84 2003/01/10 12:00:16 dankogai Exp dankogai $
#
-$Revision: 1.83 $ $Date: 2002/11/18 17:28:49 $
+$Revision: 1.84 $ $Date: 2003/01/10 12:00:16 $
+! encoding.pm
+ ${^ENCODING} is no longer set for utf so encoding is no longer fun :)
+ (That is to prevent duplicate encoding first by IO then ${^ENCODING})
+ Message-Id: <20030108213737.GK331043@lyta.hut.fi>
+! Unicode/Unicode.xs
+ %_ fixes saves the resulting .so .05% smaller, by NC
+ Message-Id: <20021226225709.GF284@Bagpuss.unfortu.net>
+! Encode.pm
+ Silence Encode on undef, by Andreas
+ Message-Id: <m3smwrohd1.fsf@k242.linux.bogus>
+ Message-Id: <m3of7fo7np.fsf@k242.linux.bogus>
+! Unicode/Unicode.xs
+ s/regognised/recognised/ . British spelling left intact to pay
+ respect to two British Nicks :)
+ Message-Id: <20021203020454.GK2274@kosh.hut.fi>
+
+1.83 2002/11/18 17:28:49
! Encode.xs lib/Encode/JIS7.pm
Even more patches from Inaba-san has been applied. With this
patch t/uni/tr_7jis.t and t/uni/t_utf8.t of bleedperl will work.
diff --git a/ext/Encode/Encode.pm b/ext/Encode/Encode.pm
index 01dc8ffbc4..4bf30e13d4 100644
--- a/ext/Encode/Encode.pm
+++ b/ext/Encode/Encode.pm
@@ -1,9 +1,9 @@
#
-# $Id: Encode.pm,v 1.83 2002/11/18 17:28:29 dankogai Exp $
+# $Id: Encode.pm,v 1.84 2003/01/10 12:00:16 dankogai Exp dankogai $
#
package Encode;
use strict;
-our $VERSION = do { my @r = (q$Revision: 1.83 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+our $VERSION = do { my @r = (q$Revision: 1.84 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
our $DEBUG = 0;
use XSLoader ();
XSLoader::load(__PACKAGE__, $VERSION);
@@ -131,6 +131,7 @@ sub resolve_alias {
sub encode($$;$)
{
my ($name, $string, $check) = @_;
+ return undef unless defined $string;
$check ||=0;
my $enc = find_encoding($name);
unless(defined $enc){
@@ -145,6 +146,7 @@ sub encode($$;$)
sub decode($$;$)
{
my ($name,$octets,$check) = @_;
+ return undef unless defined $octets;
$check ||=0;
my $enc = find_encoding($name);
unless(defined $enc){
@@ -159,6 +161,7 @@ sub decode($$;$)
sub from_to($$$;$)
{
my ($string,$from,$to,$check) = @_;
+ return undef unless defined $string;
$check ||=0;
my $f = find_encoding($from);
unless (defined $f){
diff --git a/ext/Encode/Encode.xs b/ext/Encode/Encode.xs
index 4d30914995..04616908d9 100644
--- a/ext/Encode/Encode.xs
+++ b/ext/Encode/Encode.xs
@@ -1,5 +1,5 @@
/*
- $Id: Encode.xs,v 1.52 2002/11/18 17:28:49 dankogai Exp dankogai $
+ $Id: Encode.xs,v 1.52 2002/11/18 17:28:49 dankogai Exp $
*/
#define PERL_NO_GET_CONTEXT
diff --git a/ext/Encode/Unicode/Unicode.xs b/ext/Encode/Unicode/Unicode.xs
index 7c79d4a8eb..616401a21d 100644
--- a/ext/Encode/Unicode/Unicode.xs
+++ b/ext/Encode/Unicode/Unicode.xs
@@ -1,5 +1,5 @@
/*
- $Id: Unicode.xs,v 1.5 2002/05/20 15:25:44 dankogai Exp $
+ $Id: Unicode.xs,v 1.6 2003/01/10 12:00:16 dankogai Exp dankogai $
*/
#define PERL_NO_GET_CONTEXT
@@ -113,8 +113,8 @@ CODE:
endian = 'V';
}
else {
- croak("%s:Unregognised BOM %"UVxf,
- SvPV_nolen(*hv_fetch((HV *)SvRV(obj),"Name",4,0)),
+ croak("%"SVf":Unregognised BOM %"UVxf,
+ *hv_fetch((HV *)SvRV(obj),"Name",4,0),
bom);
}
}
@@ -129,8 +129,8 @@ CODE:
if (size != 4 && invalid_ucs2(ord)) {
if (ucs2) {
if (check) {
- croak("%s:no surrogates allowed %"UVxf,
- SvPV_nolen(*hv_fetch((HV *)SvRV(obj),"Name",4,0)),
+ croak("%"SVf":no surrogates allowed %"UVxf,
+ *hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
}
if (s+size <= e) {
@@ -142,8 +142,8 @@ CODE:
else {
UV lo;
if (!isHiSurrogate(ord)) {
- croak("%s:Malformed HI surrogate %"UVxf,
- SvPV_nolen(*hv_fetch((HV *)SvRV(obj),"Name",4,0)),
+ croak("%"SVf":Malformed HI surrogate %"UVxf,
+ *hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
}
if (s+size > e) {
@@ -153,8 +153,8 @@ CODE:
}
lo = enc_unpack(aTHX_ &s,e,size,endian);
if (!isLoSurrogate(lo)){
- croak("%s:Malformed LO surrogate %"UVxf,
- SvPV_nolen(*hv_fetch((HV *)SvRV(obj),"Name",4,0)),
+ croak("%"SVf":Malformed LO surrogate %"UVxf,
+ *hv_fetch((HV *)SvRV(obj),"Name",4,0),
ord);
}
ord = 0x10000 + ((ord - 0xD800) << 10) + (lo - 0xDC00);
@@ -165,8 +165,8 @@ CODE:
SvCUR_set(result,d - (U8 *)SvPVX(result));
}
if (s < e) {
- Perl_warner(aTHX_ packWARN(WARN_UTF8),"%s:Partial character",
- SvPV_nolen(*hv_fetch((HV *)SvRV(obj),"Name",4,0)));
+ Perl_warner(aTHX_ packWARN(WARN_UTF8),"%"SVf":Partial character",
+ *hv_fetch((HV *)SvRV(obj),"Name",4,0));
}
if (check && !(check & ENCODE_LEAVE_SRC)){
if (s < e) {
@@ -212,10 +212,8 @@ CODE:
if (!issurrogate(ord)){
if (ucs2) {
if (check) {
- croak("%s:code point \"\\x{%"UVxf"}\" too high",
- SvPV_nolen(
- *hv_fetch((HV *)SvRV(obj),"Name",4,0))
- ,ord);
+ croak("%"SVf":code point \"\\x{%"UVxf"}\" too high",
+ *hv_fetch((HV *)SvRV(obj),"Name",4,0),ord);
}
enc_pack(aTHX_ result,size,endian,FBCHAR);
}else{
@@ -235,8 +233,8 @@ CODE:
}
}
if (s < e) {
- Perl_warner(aTHX_ packWARN(WARN_UTF8),"%s:Partial character",
- SvPV_nolen(*hv_fetch((HV *)SvRV(obj),"Name",4,0)));
+ Perl_warner(aTHX_ packWARN(WARN_UTF8),"%"SVf":Partial character",
+ *hv_fetch((HV *)SvRV(obj),"Name",4,0));
}
if (check && !(check & ENCODE_LEAVE_SRC)){
if (s < e) {
diff --git a/ext/Encode/encoding.pm b/ext/Encode/encoding.pm
index 778b44bc45..e8aa7374d5 100644
--- a/ext/Encode/encoding.pm
+++ b/ext/Encode/encoding.pm
@@ -1,5 +1,5 @@
package encoding;
-our $VERSION = do { my @r = (q$Revision: 1.37 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+our $VERSION = do { my @r = (q$Revision: 1.38 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Encode;
use strict;
@@ -28,8 +28,9 @@ sub import {
require Carp;
Carp::croak("Unknown encoding '$name'");
}
- unless ($arg{Filter}){
- ${^ENCODING} = $enc; # this is all you need, actually.
+ unless ($arg{Filter}) {
+ ${^ENCODING} = $enc # this is all you need, actually.
+ unless $name =~ /^(?:utf-?(?:8|16|32)|ucs-?(?:2|4))(?:[bl]e)?$/i;
$HAS_PERLIO or return 1;
for my $h (qw(STDIN STDOUT)){
if ($arg{$h}){