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