r75880 - in /trunk/libmime-charset-perl: Changes Charset.pm Charset/JA_JP.pod META.yml README debian/changelog debian/compat debian/control debian/copyright t/04alias.t
fabreg-guest at users.alioth.debian.org
fabreg-guest at users.alioth.debian.org
Fri Jun 17 11:05:35 UTC 2011
Author: fabreg-guest
Date: Fri Jun 17 11:05:33 2011
New Revision: 75880
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=75880
Log:
Updated package
Modified:
trunk/libmime-charset-perl/Changes
trunk/libmime-charset-perl/Charset.pm
trunk/libmime-charset-perl/Charset/JA_JP.pod
trunk/libmime-charset-perl/META.yml
trunk/libmime-charset-perl/README
trunk/libmime-charset-perl/debian/changelog
trunk/libmime-charset-perl/debian/compat
trunk/libmime-charset-perl/debian/control
trunk/libmime-charset-perl/debian/copyright
trunk/libmime-charset-perl/t/04alias.t
Modified: trunk/libmime-charset-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/Changes?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/Changes (original)
+++ trunk/libmime-charset-perl/Changes Fri Jun 17 11:05:33 2011
@@ -1,3 +1,25 @@
+2011-06-09 Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>
+
+ * Release 1.009.1.
+ * Chg: Workaround for aliasing on TIS-620 that is treated as
+ ISO-8859-11 by Encode.
+ And added WINDOWS-874 as EXTENDED map of TIS-620.
+ * Imp: Result of _find_encoder() will be cached.
+ * Imp/Chg: 'S' encoding will be resolved numerically, without comparing
+ actually encoded lengths.
+ * Added informations for WINDOWS-125[03-8].
+ * Added some cases to test #4.
+
+2011-06-08 Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>
+
+ * Release 1.009 - withdrawn.
+
+2011-05-28 Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>
+
+ * Release 1.008.2.
+ * Bug Fix: Body transfer-encoding profile "S" did not work properly,
+ and profile for UTF-8 was NOT really updated.
+
2011-02-19 Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>
* Release 1.008.1.
Modified: trunk/libmime-charset-perl/Charset.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/Charset.pm?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/Charset.pm (original)
+++ trunk/libmime-charset-perl/Charset.pm Fri Jun 17 11:05:33 2011
@@ -132,7 +132,7 @@
}
}
-$VERSION = '1.008.1';
+$VERSION = '1.009.1';
######## Private Attributes ########
@@ -162,13 +162,14 @@
'US-ASCII' => [undef, undef, undef],
'BIG5' => ['B', 'B', undef],
'GB2312' => ['B', 'B', undef],
+ 'HZ-GB-2312' => ['B', undef, undef],
'EUC-JP' => ['B', undef, 'ISO-2022-JP'],
'SHIFT_JIS' => ['B', undef, 'ISO-2022-JP'],
'ISO-2022-JP' => ['B', undef, undef],
'KOI8-R' => ['B', 'B', undef],
- 'UTF-8' => ['S', 'B', undef],
- 'HZ-GB-2312' => ['B', undef, undef],
+ 'TIS-620' => ['B', 'B', undef], # cf. Mew
'UTF-7' => ['Q', undef, undef],
+ 'UTF-8' => ['S', 'S', undef],
'GSM03.38' => [undef, undef, undef], # not for MIME
# We're making this one up to represent raw unencoded 8bit
'8BIT' => [undef, 'B', 'ISO-8859-1'],
@@ -179,19 +180,28 @@
my %CHARSET_ALIASES = (# unpreferred preferred
"ASCII" => "US-ASCII",
"BIG5-ETEN" => "BIG5",
+ "CP1250" => "WINDOWS-1250",
"CP1251" => "WINDOWS-1251",
"CP1252" => "WINDOWS-1252",
+ "CP1253" => "WINDOWS-1253",
+ "CP1254" => "WINDOWS-1254",
+ "CP1255" => "WINDOWS-1255",
+ "CP1256" => "WINDOWS-1256",
+ "CP1257" => "WINDOWS-1257",
+ "CP1258" => "WINDOWS-1258",
+ "CP874" => "WINDOWS-874",
"CP936" => "GBK",
"CP949" => "KS_C_5601-1987",
"EUC-CN" => "GB2312",
+ "HZ" => "HZ-GB-2312", # RFC 1842
"KS_C_5601" => "KS_C_5601-1987",
"SHIFTJIS" => "SHIFT_JIS",
"SHIFTJISX0213" => "SHIFT_JISX0213",
+ "TIS620" => "TIS-620", # IANA MIBenum 2259
"UNICODE-1-1-UTF-7" => "UTF-7", # RFC 1642 (obs.)
"UTF8" => "UTF-8",
"UTF-8-STRICT" => "UTF-8", # Perl internal use
- "HZ" => "HZ-GB-2312", # RFC 1842
- "GSM0338" => "GSM03.38",
+ "GSM0338" => "GSM03.38", # not for MIME
);
# Some vendors encode characters beyond standardized mappings using extended
@@ -234,7 +244,7 @@
['cp950'], # Encode::TW
# ['big5-1984', 'Encode::HanExtra'],
],
- 'TIS620' => [['iso-8859-11'], ], # Encode::Byte; NBSP
+ 'TIS-620' => [['cp874'], ], # Encode::Byte
'UTF-8' => [['utf8'], ], # Special name on Perl
},
'STANDARD' => {
@@ -248,7 +258,11 @@
'SHIFT_JISX0213'=> [['shiftjisx0213', 'Encode::JIS2K'], ],
'EUC-TW' => [['euc-tw', 'Encode::HanExtra'], ],
'HZ-GB-2312' => [['hz'], ], # Encode::CN
+ 'TIS-620' => [['tis620'], ], # (note*)
'GSM03.38' => [['gsm0338'], ], # Encode::GSM0338
+
+ # (note*) ISO-8859-11 was not registered by IANA.
+ # L<Encode> treats it as canonical name of ``tis-?620''.
},
);
@@ -357,8 +371,18 @@
my %params = @_;
my $mapping = uc($params{'Mapping'} || $Config->{Mapping});
- $charset = "HZ" if $charset =~ /\bhz.?gb.?2312$/i; # workaround
- $charset = resolve_alias($charset) || $charset;
+ if ($charset =~ /\bhz.?gb.?2312$/i) {
+ # workaround: "HZ-GB-2312" mistakenly treated as "EUC-CN" by Encode
+ # (2.12).
+ $charset = "HZ-GB-2312";
+ } elsif ($charset =~ /\btis-?620$/i) {
+ # workaround: "TIS620" treated as ISO-8859-11 by Encode.
+ # And "TIS-620" not known by some versions of Encode (cf.
+ # CPAN RT #20781).
+ $charset = "TIS-620";
+ } else {
+ $charset = resolve_alias($charset) || $charset
+ }
$charset = $CHARSET_ALIASES{uc($charset)} || uc($charset);
my ($henc, $benc, $outcset);
my $spec = $CHARSETS{$charset};
@@ -386,6 +410,8 @@
}, $class;
}
+my %encoder_cache = ();
+
sub _find_encoder($$) {
my $charset = uc(shift || "");
return undef unless $charset;
@@ -393,6 +419,9 @@
my ($spec, $name, $module, $encoder);
local($@);
+ $encoder = $encoder_cache{$charset, $mapping};
+ return $encoder if ref $encoder;
+
foreach my $m (('EXTENDED', 'STANDARD')) {
next if $m eq 'EXTENDED' and $mapping ne 'EXTENDED';
$spec = $ENCODERS{$m}->{$charset};
@@ -404,10 +433,13 @@
next if $@;
}
$encoder = Encode::find_encoding($name);
- return $encoder if ref $encoder;
+ last if ref $encoder;
}
- }
- return Encode::find_encoding($charset);
+ last if ref $encoder;
+ }
+ $encoder ||= Encode::find_encoding($charset);
+ $encoder_cache{$charset, $mapping} = $encoder if $encoder;
+ return $encoder;
}
=back
@@ -616,11 +648,7 @@
$cset = 'US-ASCII';
}
} elsif ($enc eq 'S') {
- if (_enclen_B($encoded) < _enclen_Q($encoded, 1)) {
- $enc = 'B';
- } else {
- $enc = 'Q';
- }
+ $enc = _resolve_S($encoded, 1);
} elsif ($enc eq 'B') {
$enc = 'BASE64';
} elsif ($enc eq 'Q') {
@@ -707,7 +735,7 @@
$s = $self->{Decoder}->decode($s, ($check & 0x1)? FB_CROAK(): 0);
}
my $enc = $self->{Encoder}->encode($s, $check);
- Encode::_utf8_off($enc); # workaround for RT #35120
+ Encode::_utf8_off($enc) if is_utf8($enc); # workaround for RT #35120
$enc;
}
@@ -741,9 +769,8 @@
my $enclen;
if ($encoding eq 'Q') {
$enclen = _enclen_Q($s);
- } elsif ($encoding eq "S") {
- my ($b, $q) = (_enclen_B($s), _enclen_Q($s));
- $enclen = ($b < $q)? $b: $q;
+ } elsif ($encoding eq 'S' and _resolve_S($s) eq 'Q') {
+ $enclen = _enclen_Q($s);
} else { # "B"
$enclen = _enclen_B($s);
}
@@ -765,6 +792,19 @@
@o = ($s =~ m{([^- !*+/0-9A-Za-z])}gos);
}
length($s) + scalar(@o) * 2;
+}
+
+sub _resolve_S($) {
+ my $s = shift;
+ my $in_body = shift;
+ my $e;
+ if ($in_body) {
+ $e = scalar(() = $s =~ m{[^-\t\r\n !*+/0-9A-Za-z]}g);
+ return (length($s) + 8 < $e * 6) ? 'BASE64' : 'QUOTED-PRINTABLE';
+ } else {
+ $e = scalar(() = $s =~ m{[^- !*+/0-9A-Za-z]}g);
+ return (length($s) + 8 < $e * 6) ? 'B' : 'Q';
+ }
}
=item $charset->header_encode(STRING [, OPTS])
@@ -827,11 +867,7 @@
$cset = 'US-ASCII';
}
} elsif ($enc eq 'S') {
- if (_enclen_B($encoded) < _enclen_Q($encoded)) {
- $enc = 'B';
- } else {
- $enc = 'Q';
- }
+ $enc = _resolve_S($encoded);
} elsif ($enc !~ /^[BQ]$/) {
$enc = 'B';
}
@@ -1193,7 +1229,7 @@
=back
-=item Release 1.008
+=item Release 1.008.2
=over 4
@@ -1221,7 +1257,7 @@
=head1 COPYRIGHT
-Copyright (C) 2006-2009 Hatuka*nezumi - IKEDA Soji.
+Copyright (C) 2006-2011 Hatuka*nezumi - IKEDA Soji.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
Modified: trunk/libmime-charset-perl/Charset/JA_JP.pod
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/Charset/JA_JP.pod?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/Charset/JA_JP.pod (original)
+++ trunk/libmime-charset-perl/Charset/JA_JP.pod Fri Jun 17 11:05:33 2011
@@ -523,7 +523,7 @@
=back
-=item リリース 1.008
+=item リリース 1.008.2
=over 4
@@ -550,7 +550,7 @@
=head1 COPYRIGHT
-Copyright (C) 2006-2009 Hatuka*nezumi - IKEDA Soji.
+Copyright (C) 2006-2011 Hatuka*nezumi - IKEDA Soji.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
Modified: trunk/libmime-charset-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/META.yml?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/META.yml (original)
+++ trunk/libmime-charset-perl/META.yml Fri Jun 17 11:05:33 2011
@@ -1,7 +1,7 @@
--- #YAML:1.0
name: MIME-Charset
abstract: Charset Informations for MIME
-version: 1.008.1
+version: 1.009.1
author:
- Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>
license: perl
@@ -27,7 +27,7 @@
provides:
MIME::Charset:
file: Charset.pm
- version: 1.008.1
+ version: 1.009.1
resources:
repository: http://hatuka.nezumi.nu/repos/MIME-Charset/
meta-spec:
Modified: trunk/libmime-charset-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/README?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/README (original)
+++ trunk/libmime-charset-perl/README Fri Jun 17 11:05:33 2011
@@ -1,6 +1,6 @@
MIME-Charset Package.
-Copyright (C) 2006-2009 by Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>.
+Copyright (C) 2006-2011 by Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>.
This package is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
Modified: trunk/libmime-charset-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/debian/changelog?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/debian/changelog (original)
+++ trunk/libmime-charset-perl/debian/changelog Fri Jun 17 11:05:33 2011
@@ -1,3 +1,16 @@
+libmime-charset-perl (1.009.1-1) UNRELEASED; urgency=low
+
+ * New upstream release
+ * Bump to 3.9.2 Standard-Version.
+ dch -i 'Switch to DEP5 license format.'
+ dch -i 'Add myself to Uploaders.'
+ * Switch d/compat to 8.
+ dch -i 'Build-Depends: switch to debhelper (>= 8).'
+ dch -i 'Bump to 3.0 quilt format.'
+
+
+ -- Fabrizio Regalli <fabreg at fabreg.it> Fri, 17 Jun 2011 13:01:58 +0200
+
libmime-charset-perl (1.008.1-1) unstable; urgency=low
* New upstream release
Modified: trunk/libmime-charset-perl/debian/compat
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/debian/compat?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/debian/compat (original)
+++ trunk/libmime-charset-perl/debian/compat Fri Jun 17 11:05:33 2011
@@ -1,1 +1,1 @@
-7
+8
Modified: trunk/libmime-charset-perl/debian/control
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/debian/control?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/debian/control (original)
+++ trunk/libmime-charset-perl/debian/control Fri Jun 17 11:05:33 2011
@@ -9,8 +9,9 @@
Jonathan Yu <jawnsy at cpan.org>,
Rene Mayorga <rmayorga at debian.org>,
gregor herrmann <gregoa at debian.org>,
- Ryan Niebur <ryan at debian.org>
-Standards-Version: 3.9.1
+ Ryan Niebur <ryan at debian.org>,
+ Fabrizio Regalli <fabreg at fabreg.it>
+Standards-Version: 3.9.2
Homepage: http://search.cpan.org/dist/MIME-Charset/
Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libmime-charset-perl/
Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libmime-charset-perl/
Modified: trunk/libmime-charset-perl/debian/copyright
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/debian/copyright?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/debian/copyright (original)
+++ trunk/libmime-charset-perl/debian/copyright Fri Jun 17 11:05:33 2011
@@ -20,6 +20,7 @@
2008, Roberto C. Sanchez <roberto at connexer.com>
2008, Rene Mayorga <rmayorga at debian.org.sv>
2007, Micah Anderson <micah at debian.org>
+ 2011, Fabrizio Regalli <fabreg at fabreg.it>
License: Artistic or GPL-1+
License: Artistic
Modified: trunk/libmime-charset-perl/t/04alias.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmime-charset-perl/t/04alias.t?rev=75880&op=diff
==============================================================================
--- trunk/libmime-charset-perl/t/04alias.t (original)
+++ trunk/libmime-charset-perl/t/04alias.t Fri Jun 17 11:05:33 2011
@@ -1,7 +1,16 @@
use strict;
-use Test;
+use Test::More;
-BEGIN { plan tests => 26 }
+BEGIN {
+ if ($] < 5.007003) {
+ plan tests => 27;
+ } else {
+ if ($] < 5.008) { # Perl 5.7.3 + Encode 0.04
+ require Encode::CN;
+ }
+ plan tests => 29;
+ }
+}
my @names = qw(
US-ASCII
@@ -12,11 +21,18 @@
GB2312 BIG5 KOI8-R
UTF-8
HZ-GB-2312
+ TIS-620
);
use MIME::Charset qw(:info);
foreach my $name (@names) {
- my $aliased = MIME::Charset->new($name)->as_string;
- ok($aliased, $name, $aliased);
+ my $obj = MIME::Charset->new($name);
+ is($obj->as_string, $name, $name);
+ if (&MIME::Charset::USE_ENCODE and
+ ($name eq 'HZ-GB-2312' or $name eq 'TIS-620')) {
+ is($obj->decoder ? 'defined' : undef, 'defined', "$name available");
+ diag("$name is decoded by '".$obj->decoder->name."' encoding")
+ if $obj->decoder;
+ }
}
More information about the Pkg-perl-cvs-commits
mailing list