r34401 - in /trunk/libemail-mime-encodings-perl: Changes META.yml Makefile.PL debian/changelog lib/Email/MIME/Encodings.pm t/basic.t

bricas-guest at users.alioth.debian.org bricas-guest at users.alioth.debian.org
Thu Apr 30 12:35:53 UTC 2009


Author: bricas-guest
Date: Thu Apr 30 12:35:48 2009
New Revision: 34401

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=34401
Log:
New upstream release

Modified:
    trunk/libemail-mime-encodings-perl/Changes
    trunk/libemail-mime-encodings-perl/META.yml
    trunk/libemail-mime-encodings-perl/Makefile.PL
    trunk/libemail-mime-encodings-perl/debian/changelog
    trunk/libemail-mime-encodings-perl/lib/Email/MIME/Encodings.pm
    trunk/libemail-mime-encodings-perl/t/basic.t

Modified: trunk/libemail-mime-encodings-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libemail-mime-encodings-perl/Changes?rev=34401&op=diff
==============================================================================
--- trunk/libemail-mime-encodings-perl/Changes (original)
+++ trunk/libemail-mime-encodings-perl/Changes Thu Apr 30 12:35:48 2009
@@ -1,4 +1,7 @@
 Revision history for Perl extension Email-MIME-Encodings
+
+1.313     2009-04-16
+          bugfix by MKANAT to avoid QP-encoding CRLF
 
 1.312     2009-01-22
           add repo metadata

Modified: trunk/libemail-mime-encodings-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libemail-mime-encodings-perl/META.yml?rev=34401&op=diff
==============================================================================
--- trunk/libemail-mime-encodings-perl/META.yml (original)
+++ trunk/libemail-mime-encodings-perl/META.yml Thu Apr 30 12:35:48 2009
@@ -1,22 +1,24 @@
 --- #YAML:1.0
 name:               Email-MIME-Encodings
-version:            1.312
+version:            1.313
 abstract:           ~
 author:  []
 license:            perl
 distribution_type:  module
 configure_requires:
     ExtUtils::MakeMaker:  0
+build_requires:
+    ExtUtils::MakeMaker:  0
 requires:
     MIME::Base64:       3.05
     MIME::QuotedPrint:  3.03
 resources:
-    Repository:  http://github.com/rjbs/email-mime-encodings
+    repository:  http://github.com/rjbs/email-mime-encodings
 no_index:
     directory:
         - t
         - inc
-generated_by:       ExtUtils::MakeMaker version 6.48
+generated_by:       ExtUtils::MakeMaker version 6.50
 meta-spec:
     url:      http://module-build.sourceforge.net/META-spec-v1.4.html
     version:  1.4

Modified: trunk/libemail-mime-encodings-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libemail-mime-encodings-perl/Makefile.PL?rev=34401&op=diff
==============================================================================
--- trunk/libemail-mime-encodings-perl/Makefile.PL (original)
+++ trunk/libemail-mime-encodings-perl/Makefile.PL Thu Apr 30 12:35:48 2009
@@ -12,7 +12,7 @@
   (eval { ExtUtils::MakeMaker->VERSION(6.46) }
     ? (META_MERGE => {
         resources => {
-          Repository => 'http://github.com/rjbs/email-mime-encodings'
+          repository => 'http://github.com/rjbs/email-mime-encodings'
         }
       })
     : ()

Modified: trunk/libemail-mime-encodings-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libemail-mime-encodings-perl/debian/changelog?rev=34401&op=diff
==============================================================================
--- trunk/libemail-mime-encodings-perl/debian/changelog (original)
+++ trunk/libemail-mime-encodings-perl/debian/changelog Thu Apr 30 12:35:48 2009
@@ -1,6 +1,4 @@
-libemail-mime-encodings-perl (1.312-1) UNRELEASED; urgency=low
-
-  no need to upload, only git repo added
+libemail-mime-encodings-perl (1.313-1) UNRELEASED; urgency=low
 
   [ Brian Cassidy ]
   * New upstream release
@@ -10,7 +8,7 @@
     (source stanza).
   * debian/control: Added: ${misc:Depends} to Depends: field.
 
- -- Brian Cassidy <brian.cassidy at gmail.com>  Fri, 30 Jan 2009 11:12:45 -0400
+ -- Brian Cassidy <brian.cassidy at gmail.com>  Thu, 30 Apr 2009 09:34:52 -0300
 
 libemail-mime-encodings-perl (1.311-3) unstable; urgency=low
 

Modified: trunk/libemail-mime-encodings-perl/lib/Email/MIME/Encodings.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libemail-mime-encodings-perl/lib/Email/MIME/Encodings.pm?rev=34401&op=diff
==============================================================================
--- trunk/libemail-mime-encodings-perl/lib/Email/MIME/Encodings.pm (original)
+++ trunk/libemail-mime-encodings-perl/lib/Email/MIME/Encodings.pm Thu Apr 30 12:35:48 2009
@@ -3,7 +3,7 @@
 no strict 'refs';
 use warnings;
 
-$Email::MIME::Encodings::VERSION = "1.312";
+$Email::MIME::Encodings::VERSION = "1.313";
 
 use MIME::Base64;
 use MIME::QuotedPrint;
@@ -18,12 +18,38 @@
     my ($which, $how, $what) = @_;
     $how = lc $how;
     $how = "qp" if $how eq "quotedprint" or $how eq "quoted-printable";
-    my $sub = $which."_".$how;
-    if (not defined &$sub) {
+    my $sub = __PACKAGE__->can("$which\_$how");
+
+    unless ($sub) {
         require Carp;
         Carp::croak("Don't know how to $which $how");
     }
-    $sub->($what);
+
+    # RFC2822 requires all email lines to end in CRLF. The Quoted-Printable
+    # RFC requires CRLF to not be encoded, when representing newlins.  We will
+    # assume, in this code, that QP is being used for plain text and not binary
+    # data.  This may, someday, be wrong -- but if you are using QP to encode
+    # binary data, you are already doing something bizarre.
+    #
+    # The only way to achieve this with MIME::QuotedPrint is to replace all
+    # CRLFs with just LF and then let MIME::QuotedPrint replace all LFs with
+    # CRLF. Otherwise MIME::QuotedPrint (by default) encodes CR as =0D, which
+    # is against RFCs and breaks MUAs (such as Thunderbird).
+    #
+    # We don't modify data before Base64 encoding it because that is usually
+    # binary data and modifying it at all is a bad idea. We do however specify
+    # that the encoder should end lines with CRLF (since that's the email
+    # standard).
+    # -- rjbs and mkanat, 2009-04-16
+    my $eol = "\x0d\x0a";
+    if ($which eq 'encode') {
+        $what =~ s/$eol/\x0a/sg if $how eq 'qp';
+        return $sub->($what, $eol);
+    } else {
+        my $txt = $sub->($what);
+        $txt =~ s/\x0a/$eol/sg if $how eq 'qp';
+        return $txt;
+    }
 }
 
 sub decode { return codec("decode", @_) }

Modified: trunk/libemail-mime-encodings-perl/t/basic.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libemail-mime-encodings-perl/t/basic.t?rev=34401&op=diff
==============================================================================
--- trunk/libemail-mime-encodings-perl/t/basic.t (original)
+++ trunk/libemail-mime-encodings-perl/t/basic.t Thu Apr 30 12:35:48 2009
@@ -1,17 +1,18 @@
 use Test::More tests => 12;
 use_ok("Email::MIME::Encodings");
 
-my $x = "This is a test\nof various MIME=stuff.";
+my $CRLF = "\x0d\x0a";
+my $x = "This is a test${CRLF}of various MIME=stuff.";
 for (qw(binary 7bit 8bit)) {
     is(Email::MIME::Encodings::encode($_, $x), $x, "enc $_");
     is(Email::MIME::Encodings::decode($_, $x), $x, "dec $_");
 }
 
-$y= "This is a test\nof various MIME=3Dstuff.=\n";
+$y = "This is a test${CRLF}of various MIME=3Dstuff.=${CRLF}";
 is(Email::MIME::Encodings::encode(quotedprint => $x), $y, "enc qp");
 is(Email::MIME::Encodings::decode(quotedprint => $y), $x, "dec qp");
 
-$z="VGhpcyBpcyBhIHRlc3QKb2YgdmFyaW91cyBNSU1FPXN0dWZmLg==\n";
+$z = "VGhpcyBpcyBhIHRlc3QNCm9mIHZhcmlvdXMgTUlNRT1zdHVmZi4=${CRLF}";
 is(Email::MIME::Encodings::encode(base64 => $x), $z, "enc 64");
 is(Email::MIME::Encodings::decode(base64 => $z), $x, "dec 64");
 




More information about the Pkg-perl-cvs-commits mailing list