This is an automated email from the git hooks/post-receive script. gregoa pushed a commit to branch master in repository libmime-tools-perl.
commit 79ef19737b466b342afa4444992dd0be699c604b Author: gregor herrmann <gre...@debian.org> Date: Sun Dec 6 15:30:51 2015 +0100 Imported Upstream version 5.507 --- ChangeLog | 49 +++++++++++++++++++++++++++-------------- META.yml | 6 ++--- Makefile.PL | 2 +- README | 2 +- inc/Module/Install.pm | 22 ++++++++++-------- inc/Module/Install/Base.pm | 2 +- inc/Module/Install/Can.pm | 2 +- inc/Module/Install/Fetch.pm | 2 +- inc/Module/Install/Makefile.pm | 4 ++-- inc/Module/Install/Metadata.pm | 6 ++--- inc/Module/Install/Win32.pm | 2 +- inc/Module/Install/WriteAll.pm | 2 +- lib/MIME/Body.pm | 4 ++-- lib/MIME/Decoder.pm | 2 +- lib/MIME/Decoder/Base64.pm | 2 +- lib/MIME/Decoder/BinHex.pm | 2 +- lib/MIME/Decoder/Binary.pm | 2 +- lib/MIME/Decoder/Gzip64.pm | 2 +- lib/MIME/Decoder/NBit.pm | 2 +- lib/MIME/Decoder/QuotedPrint.pm | 2 +- lib/MIME/Decoder/UU.pm | 2 +- lib/MIME/Entity.pm | 6 ++--- lib/MIME/Field/ConTraEnc.pm | 4 ++-- lib/MIME/Field/ContDisp.pm | 4 ++-- lib/MIME/Field/ContType.pm | 4 ++-- lib/MIME/Field/ParamVal.pm | 15 +++++++++---- lib/MIME/Head.pm | 4 ++-- lib/MIME/Parser.pm | 4 ++-- lib/MIME/Parser/Reader.pm | 8 +++---- lib/MIME/Tools.pm | 4 ++-- lib/MIME/WordDecoder.pm | 2 +- lib/MIME/Words.pm | 4 ++-- t/Entity.t | 41 +++++++++++++++++++++++++++++++++- t/ParamVal.t | 28 ++++++++++++++++++++++- 34 files changed, 170 insertions(+), 79 deletions(-) diff --git a/ChangeLog b/ChangeLog index d98daef..f038c3e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,19 @@ -5.505 2013-11-14 David F. Skoll <d...@roaringpenguin.com> +5.507 2015-09-30 Dianne Skoll <d...@roaringpenguin.com> + + * VERSION 5.507 RELEASED + + * Fix parsing bug + https://rt.cpan.org/Public/Bug/Display.html?id=105455 + + * Fix typo that broke MIME::Body::incore->open() on Perl 5.20 + +5.506 2015-04-22 Dianne Skoll <d...@roaringpenguin.com> + + * VERSION 5.506 RELEASED + + * Update maintainer's name to "Dianne Skoll" + +5.505 2013-11-14 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.505 RELEASED @@ -17,7 +32,7 @@ * Fix bug in header parsing that would fail to parse a header like: Content-Type: ; name="malware.zip" -5.504 2013-01-30 David F. Skoll <d...@roaringpenguin.com> +5.504 2013-01-30 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.504 RELEASED @@ -32,7 +47,7 @@ break multibyte-encodings (eg, utf-8) https://rt.cpan.org/Public/Bug/Display.html?id=5462 -5.503 2012-06-08 David F. Skoll <d...@roaringpenguin.com> +5.503 2012-06-08 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.503 RELEASED @@ -66,7 +81,7 @@ * Add "use strict" everywhere https://rt.cpan.org/Public/Bug/Display.html?id=77582 -5.502 2011-03-08 David F. Skoll <d...@roaringpenguin.com> +5.502 2011-03-08 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.502 RELEASED @@ -81,7 +96,7 @@ * Fix unit test failure on Win32: (https://rt.cpan.org/Ticket/Display.html?id=66286) -5.501 2011-02-17 David F. Skoll <d...@roaringpenguin.com> +5.501 2011-02-17 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.501 RELEASED @@ -187,7 +202,7 @@ never worked and has been removed, any code calling tmp_recycling() should stop attempting to use the feature. -5.424 2007-11-07 David Skoll <d...@roaringpenguin.com> +5.424 2007-11-07 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.424 RELEASED @@ -267,14 +282,14 @@ * (cleanup) Merge all changelog information from README and MIME/Tools.pm into ChangeLog -5.420 2006-03-17 David F. Skoll <d...@roaringpenguin.com> +5.420 2006-03-17 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.420 RELEASED * Fix regression introduced in 5.419 -- quoted-printable encoding would sometimes fail on "textual" MIME parts. -5.419 2005-12-22 David F. Skoll <d...@roaringpenguin.com> +5.419 2005-12-22 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.419 RELEASED @@ -283,7 +298,7 @@ if you need the exact unmangled message source (for example, for GPG-signing.) Patch submitted by J�rn Reder. -5.418 2005-09-29 David F. Skoll <d...@roaringpenguin.com> +5.418 2005-09-29 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.418 RELEASED @@ -298,7 +313,7 @@ * MANIFEST: Remove some useless internal files from the manifest. They were never meant to be part of the actual distribution. -5.417 2005-01-20 David F. Skoll <d...@roaringpenguin.com> +5.417 2005-01-20 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.417 RELEASED @@ -310,7 +325,7 @@ parameters was buggy and caused decoding errors. This has been fixed. -5.416 2005-01-03 David F. Skoll <d...@roaringpenguin.com> +5.416 2005-01-03 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.416 RELEASED @@ -322,14 +337,14 @@ parameters. Apparently, not doing so can cause Perl to core dump on certain badly-formed messages. -5.415 2004-10-27 David F. Skoll <d...@roaringpenguin.com> +5.415 2004-10-27 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.415 RELEASED * Fixed parsing of parameter="" in headers, and fixed case where multipart boundary is "" -5.414 2004-10-06 David F. Skoll <d...@roaringpenguin.com> +5.414 2004-10-06 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.414 RELEASED @@ -339,14 +354,14 @@ * Check return values of I/O operations like open(), close(), etc. and die if they fail. Problem reported by Mark Martinec. -5.413 2004-09-15 David F. Skoll <d...@roaringpenguin.com> +5.413 2004-09-15 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.413 RELEASED * Fix some $VERSION = xxx assignments that were broken; make sure VERSION shows up as 5.413 everywhere. Sorry about that! -5.412 2004-09-09 David F. Skoll <d...@roaringpenguin.com> +5.412 2004-09-09 Dianne Skoll <d...@roaringpenguin.com> * VERSION 5.412 RELEASED @@ -356,7 +371,7 @@ * Filer.pm: Be much more strict in evil_filename, allowing only a set of known good characters. -2004-09-08 David F. Skoll <d...@roaringpenguin.com> +2004-09-08 Dianne Skoll <d...@roaringpenguin.com> * Skip BinHex decoding if prerequisite modules not installed. @@ -371,7 +386,7 @@ * Correct bad regexp test for "bad PDF" files. -2004-09-07 David F. Skoll <d...@roaringpenguin.com> +2004-09-07 Dianne Skoll <d...@roaringpenguin.com> * lib/MIME/Parser/Filer.pm (evil_filename): Make evil_filename more paranoid (Julian Field and Martin Blapp) diff --git a/META.yml b/META.yml index 945d1df..55cdd0c 100644 --- a/META.yml +++ b/META.yml @@ -1,7 +1,7 @@ --- abstract: 'Tools to manipulate MIME messages' author: - - "Eryq <e...@zeegee.com>, David F. Skoll <d...@roaringpenguin.com>, Dave O'Neill <d...@roaringpenguin.com>" + - "Eryq <e...@zeegee.com>, Dianne Skoll <d...@roaringpenguin.com>, Dave O'Neill <d...@roaringpenguin.com>" build_requires: ExtUtils::MakeMaker: 6.59 Test::Deep: 0 @@ -10,7 +10,7 @@ configure_requires: ExtUtils::MakeMaker: 6.59 distribution_type: module dynamic_config: 1 -generated_by: 'Module::Install version 1.06' +generated_by: 'Module::Install version 1.14' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -38,4 +38,4 @@ requires: perl: 5.8.0 resources: license: http://dev.perl.org/licenses/ -version: 5.505 +version: '5.507' diff --git a/Makefile.PL b/Makefile.PL index 3e4343b..a8d31b3 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -5,7 +5,7 @@ use inc::Module::Install; name 'MIME-tools'; module_name 'MIME::Tools'; version_from 'lib/MIME/Tools.pm'; -author q{Eryq <e...@zeegee.com>, David F. Skoll <d...@roaringpenguin.com>, Dave O'Neill <d...@roaringpenguin.com>}; +author q{Eryq <e...@zeegee.com>, Dianne Skoll <d...@roaringpenguin.com>, Dave O'Neill <d...@roaringpenguin.com>}; abstract 'Tools to manipulate MIME messages'; license 'perl'; diff --git a/README b/README index 191d122..b4b7a3f 100644 --- a/README +++ b/README @@ -642,7 +642,7 @@ A MIME PRIMER TERMS AND CONDITIONS Eryq (e...@zeegee.com), ZeeGee Software Inc (http://www.zeegee.com). - David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com + Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com Copyright (c) 1998, 1999 by ZeeGee Software Inc (www.zeegee.com). Copyright (c) 2004 by Roaring Penguin Software Inc (www.roaringpenguin.com) diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm index 4ecf46b..ff767fa 100644 --- a/inc/Module/Install.pm +++ b/inc/Module/Install.pm @@ -17,7 +17,7 @@ package Module::Install; # 3. The ./inc/ version of Module::Install loads # } -use 5.005; +use 5.006; use strict 'vars'; use Cwd (); use File::Find (); @@ -31,7 +31,7 @@ BEGIN { # This is not enforced yet, but will be some time in the next few # releases once we can make sure it won't clash with custom # Module::Install extensions. - $VERSION = '1.06'; + $VERSION = '1.14'; # Storage for the pseudo-singleton $MAIN = undef; @@ -156,10 +156,10 @@ END_DIE sub autoload { my $self = shift; my $who = $self->_caller; - my $cwd = Cwd::cwd(); + my $cwd = Cwd::getcwd(); my $sym = "${who}::AUTOLOAD"; $sym->{$cwd} = sub { - my $pwd = Cwd::cwd(); + my $pwd = Cwd::getcwd(); if ( my $code = $sym->{$pwd} ) { # Delegate back to parent dirs goto &$code unless $cwd eq $pwd; @@ -239,7 +239,7 @@ sub new { # ignore the prefix on extension modules built from top level. my $base_path = Cwd::abs_path($FindBin::Bin); - unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) { + unless ( Cwd::abs_path(Cwd::getcwd()) eq $base_path ) { delete $args{prefix}; } return $args{_self} if $args{_self}; @@ -338,7 +338,7 @@ sub find_extensions { if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) { my $content = Module::Install::_read($subpath . '.pm'); my $in_pod = 0; - foreach ( split //, $content ) { + foreach ( split /\n/, $content ) { $in_pod = 1 if /^=\w/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # skip pod text @@ -378,6 +378,7 @@ eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _read { local *FH; open( FH, '<', $_[0] ) or die "open($_[0]): $!"; + binmode FH; my $string = do { local $/; <FH> }; close FH or die "close($_[0]): $!"; return $string; @@ -386,6 +387,7 @@ END_NEW sub _read { local *FH; open( FH, "< $_[0]" ) or die "open($_[0]): $!"; + binmode FH; my $string = do { local $/; <FH> }; close FH or die "close($_[0]): $!"; return $string; @@ -416,6 +418,7 @@ eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _write { local *FH; open( FH, '>', $_[0] ) or die "open($_[0]): $!"; + binmode FH; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } @@ -425,6 +428,7 @@ END_NEW sub _write { local *FH; open( FH, "> $_[0]" ) or die "open($_[0]): $!"; + binmode FH; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } @@ -434,7 +438,7 @@ END_OLD # _version is for processing module versions (eg, 1.03_05) not # Perl versions (eg, 5.8.1). -sub _version ($) { +sub _version { my $s = shift || 0; my $d =()= $s =~ /(\.)/g; if ( $d >= 2 ) { @@ -450,12 +454,12 @@ sub _version ($) { return $l + 0; } -sub _cmp ($$) { +sub _cmp { _version($_[1]) <=> _version($_[2]); } # Cloned from Params::Util::_CLASS -sub _CLASS ($) { +sub _CLASS { ( defined $_[0] and diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm index 802844a..4206347 100644 --- a/inc/Module/Install/Base.pm +++ b/inc/Module/Install/Base.pm @@ -4,7 +4,7 @@ package Module::Install::Base; use strict 'vars'; use vars qw{$VERSION}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.14'; } # Suspend handler for "redefined" warnings diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm index 22167b8..9929b1b 100644 --- a/inc/Module/Install/Can.pm +++ b/inc/Module/Install/Can.pm @@ -8,7 +8,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm index bee0c4f..3d8de76 100644 --- a/inc/Module/Install/Fetch.pm +++ b/inc/Module/Install/Fetch.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm index 7052f36..66993af 100644 --- a/inc/Module/Install/Makefile.pm +++ b/inc/Module/Install/Makefile.pm @@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/; use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -133,7 +133,7 @@ sub makemaker_args { return $args; } -# For mm args that take multiple space-seperated args, +# For mm args that take multiple space-separated args, # append an argument to the current list. sub makemaker_append { my $self = shift; diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm index 58430f3..e547fa0 100644 --- a/inc/Module/Install/Metadata.pm +++ b/inc/Module/Install/Metadata.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -347,7 +347,7 @@ sub name_from { ^ \s* package \s* ([\w:]+) - \s* ; + [\s|;]* /ixms ) { my ($name, $module_name) = ($1, $1); @@ -705,7 +705,7 @@ sub _write_mymeta_data { my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); my $meta = $yaml[0]; - # Overwrite the non-configure dependency hashs + # Overwrite the non-configure dependency hashes delete $meta->{requires}; delete $meta->{build_requires}; delete $meta->{recommends}; diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm index eeaa3fe..9706e5f 100644 --- a/inc/Module/Install/Win32.pm +++ b/inc/Module/Install/Win32.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm index 85d8018..dbedc00 100644 --- a/inc/Module/Install/WriteAll.pm +++ b/inc/Module/Install/WriteAll.pm @@ -6,7 +6,7 @@ use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.06'; + $VERSION = '1.14'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } diff --git a/lib/MIME/Body.pm b/lib/MIME/Body.pm index 3b5dcb4..0069a1d 100644 --- a/lib/MIME/Body.pm +++ b/lib/MIME/Body.pm @@ -141,7 +141,7 @@ use Carp; use IO::File; ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; #------------------------------ @@ -522,7 +522,7 @@ sub open { die "bad mode: $mode"; } - return IO::File->new(\($self->{MBS_Data}), $mode); + return IO::File->new(\ $self->{MBS_Data}, $mode); } diff --git a/lib/MIME/Decoder.pm b/lib/MIME/Decoder.pm index 56873d2..dba562c 100644 --- a/lib/MIME/Decoder.pm +++ b/lib/MIME/Decoder.pm @@ -126,7 +126,7 @@ use Carp; ); ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### Me: my $ME = 'MIME::Decoder'; diff --git a/lib/MIME/Decoder/Base64.pm b/lib/MIME/Decoder/Base64.pm index 40838f2..95dc67f 100644 --- a/lib/MIME/Decoder/Base64.pm +++ b/lib/MIME/Decoder/Base64.pm @@ -60,7 +60,7 @@ use MIME::Tools qw(debug); @ISA = qw(MIME::Decoder); ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### How many bytes to encode at a time (must be a multiple of 3, and ### less than (76 * 0.75)! diff --git a/lib/MIME/Decoder/BinHex.pm b/lib/MIME/Decoder/BinHex.pm index d546767..2f0112c 100644 --- a/lib/MIME/Decoder/BinHex.pm +++ b/lib/MIME/Decoder/BinHex.pm @@ -47,7 +47,7 @@ use Convert::BinHex; @ISA = qw(MIME::Decoder); # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; #------------------------------ diff --git a/lib/MIME/Decoder/Binary.pm b/lib/MIME/Decoder/Binary.pm index 0b355cb..417bb2c 100644 --- a/lib/MIME/Decoder/Binary.pm +++ b/lib/MIME/Decoder/Binary.pm @@ -47,7 +47,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(MIME::Decoder); ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### Buffer length: my $BUFLEN = 8192; diff --git a/lib/MIME/Decoder/Gzip64.pm b/lib/MIME/Decoder/Gzip64.pm index 2dae253..1073dd2 100644 --- a/lib/MIME/Decoder/Gzip64.pm +++ b/lib/MIME/Decoder/Gzip64.pm @@ -61,7 +61,7 @@ use MIME::Tools qw(tmpopen whine); @ISA = qw(MIME::Decoder::Base64); # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; # How to compress stdin to stdout: $GZIP = "gzip -c"; diff --git a/lib/MIME/Decoder/NBit.pm b/lib/MIME/Decoder/NBit.pm index 06baba8..3f1e27b 100644 --- a/lib/MIME/Decoder/NBit.pm +++ b/lib/MIME/Decoder/NBit.pm @@ -98,7 +98,7 @@ use MIME::Tools qw(:msgs); @ISA = qw(MIME::Decoder); ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### How many bytes to decode at a time? my $DecodeChunkLength = 8 * 1024; diff --git a/lib/MIME/Decoder/QuotedPrint.pm b/lib/MIME/Decoder/QuotedPrint.pm index 61b9dd3..d43ae30 100644 --- a/lib/MIME/Decoder/QuotedPrint.pm +++ b/lib/MIME/Decoder/QuotedPrint.pm @@ -58,7 +58,7 @@ use MIME::QuotedPrint; @ISA = qw(MIME::Decoder); # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; #------------------------------ # If we have MIME::QuotedPrint 3.03 or later, use the three-argument diff --git a/lib/MIME/Decoder/UU.pm b/lib/MIME/Decoder/UU.pm index 3bc5401..6852674 100644 --- a/lib/MIME/Decoder/UU.pm +++ b/lib/MIME/Decoder/UU.pm @@ -48,7 +48,7 @@ use MIME::Tools qw(whine); @ISA = qw(MIME::Decoder); # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; #------------------------------ diff --git a/lib/MIME/Entity.pm b/lib/MIME/Entity.pm index 37d0de4..727ce1b 100644 --- a/lib/MIME/Entity.pm +++ b/lib/MIME/Entity.pm @@ -245,7 +245,7 @@ use MIME::Decoder; #------------------------------ ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### Boundary counter: my $BCount = 0; @@ -570,7 +570,7 @@ sub build { $filename = undef if (defined($filename) and $filename eq ''); ### Type-check sanity: - if ($type =~ m{^(multipart|message)/}) { + if ($type =~ m{^(multipart/|message/(rfc822|partial|external-body|delivery-status|disposition-notification|feedback-report)$)}i) { ($encoding =~ /^(|7bit|8bit|binary|-suggest)$/i) or croak "can't have encoding $encoding for message type $type!"; } @@ -2250,7 +2250,7 @@ L<MIME::Tools>, L<MIME::Head>, L<MIME::Body>, L<MIME::Decoder>, L<Mail::Internet =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff --git a/lib/MIME/Field/ConTraEnc.pm b/lib/MIME/Field/ConTraEnc.pm index a39af00..985170f 100644 --- a/lib/MIME/Field/ConTraEnc.pm +++ b/lib/MIME/Field/ConTraEnc.pm @@ -35,7 +35,7 @@ L<MIME::Field::ParamVal>, L<Mail::Field> =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com =cut @@ -47,7 +47,7 @@ use vars qw($VERSION @ISA); @ISA = qw(MIME::Field::ParamVal); # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; # Install it: bless([])->register('Content-transfer-encoding'); diff --git a/lib/MIME/Field/ContDisp.pm b/lib/MIME/Field/ContDisp.pm index 7d60459..26a4970 100644 --- a/lib/MIME/Field/ContDisp.pm +++ b/lib/MIME/Field/ContDisp.pm @@ -35,7 +35,7 @@ L<MIME::Field::ParamVal>, L<Mail::Field> =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com =cut @@ -48,7 +48,7 @@ use vars qw($VERSION @ISA); @ISA = qw(MIME::Field::ParamVal); # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; # Install it: bless([])->register('Content-disposition'); diff --git a/lib/MIME/Field/ContType.pm b/lib/MIME/Field/ContType.pm index f8300e2..6053462 100644 --- a/lib/MIME/Field/ContType.pm +++ b/lib/MIME/Field/ContType.pm @@ -63,7 +63,7 @@ use vars qw($VERSION @ISA); @ISA = qw(MIME::Field::ParamVal); # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; # Install it: bless([])->register('Content-type'); @@ -186,7 +186,7 @@ L<MIME::Field::ParamVal>, L<Mail::Field> =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com =cut diff --git a/lib/MIME/Field/ParamVal.pm b/lib/MIME/Field/ParamVal.pm index 887f147..0827254 100644 --- a/lib/MIME/Field/ParamVal.pm +++ b/lib/MIME/Field/ParamVal.pm @@ -80,7 +80,7 @@ use MIME::Tools qw(:config :msgs); #------------------------------ # The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; #------------------------------ @@ -238,11 +238,11 @@ sub parse_params { # Extract subsequent parameters. # No, we can't just "split" on semicolons: they're legal in quoted strings! while (1) { # keep chopping away until done... - $raw =~ m/\G$SPCZ(\;$SPCZ)+/og or last; # skip leading separator + $raw =~ m/\G[^;]*(\;$SPCZ)+/og or last; # skip leading separator $raw =~ m/\G($PARAMNAME)\s*=\s*/og or last; # give up if not a param $param = lc($1); - $raw =~ m/\G(?:$QUOTED_STRING|($ENCTOKEN)|($BADTOKEN)|($TOKEN))/g or last; # give up if no value" - my ($qstr, $enctoken, $badtoken, $token) = ($1, $2, $3, $4, $5); + $raw =~ m/\G(?:$QUOTED_STRING|($ENCTOKEN)|($TOKEN)|($BADTOKEN))/g or last; # give up if no value" + my ($qstr, $enctoken, $token, $badtoken) = ($1, $2, $3, $4, $5); if (defined($qstr)) { # unescape $qstr =~ s/\\(.)/$1/g; @@ -251,6 +251,13 @@ sub parse_params { # Strip leading/trailing whitespace from badtoken $badtoken =~ s/^\s+//; $badtoken =~ s/\s+\z//; + + # Only keep token parameters in badtoken; + # cut it off at the first non-token char. CPAN RT #105455 + $badtoken =~ /^($TOKEN)*/; + $badtoken = $1; + # Cut it off at first whitespace too + $badtoken =~ s/\s.*//; } $val = defined($qstr) ? $qstr : (defined($enctoken) ? $enctoken : diff --git a/lib/MIME/Head.pm b/lib/MIME/Head.pm index 76583a4..35b1f07 100644 --- a/lib/MIME/Head.pm +++ b/lib/MIME/Head.pm @@ -138,7 +138,7 @@ use MIME::Field::ContType; #------------------------------ ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### Sanity (we put this test after our own version, for CPAN::): use Mail::Header 1.06 (); @@ -912,7 +912,7 @@ L<Mail::Header>, L<Mail::Field>, L<MIME::Words>, L<MIME::Tools> =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff --git a/lib/MIME/Parser.pm b/lib/MIME/Parser.pm index fdd24bd..e714025 100644 --- a/lib/MIME/Parser.pm +++ b/lib/MIME/Parser.pm @@ -153,7 +153,7 @@ use MIME::Parser::Results; #------------------------------ ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### How to catenate: $CAT = '/bin/cat'; @@ -1993,7 +1993,7 @@ L<MIME::Tools>, L<MIME::Head>, L<MIME::Body>, L<MIME::Entity>, L<MIME::Decoder> =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff --git a/lib/MIME/Parser/Reader.pm b/lib/MIME/Parser/Reader.pm index a7eaf5c..bf95aa3 100644 --- a/lib/MIME/Parser/Reader.pm +++ b/lib/MIME/Parser/Reader.pm @@ -241,7 +241,7 @@ sub read_chunk { if ($n_out) { ### native input, native output [fastest] while (<$n_in>) { # Normalize line ending - $_ =~ s/(:?\n\r|\r\n|\r)$/\n/ if $normalize_newlines; + $_ =~ s/(?:\n\r|\r\n|\r)$/\n/ if $normalize_newlines; if (substr($_, 0, 2) eq '--') { ($maybe = $_) =~ s/[ \t\r\n]+\Z//; $bh{$maybe} and do { $eos = $bh{$maybe}; last }; @@ -253,7 +253,7 @@ sub read_chunk { else { ### native input, OO output [slower] while (<$n_in>) { # Normalize line ending - $_ =~ s/(:?\n\r|\r\n|\r)$/\n/ if $normalize_newlines; + $_ =~ s/(?:\n\r|\r\n|\r)$/\n/ if $normalize_newlines; if (substr($_, 0, 2) eq '--') { ($maybe = $_) =~ s/[ \t\r\n]+\Z//; $bh{$maybe} and do { $eos = $bh{$maybe}; last }; @@ -267,7 +267,7 @@ sub read_chunk { if ($n_out) { ### OO input, native output [even slower] while (defined($_ = $in->getline)) { # Normalize line ending - $_ =~ s/(:?\n\r|\r\n|\r)$/\n/ if $normalize_newlines; + $_ =~ s/(?:\n\r|\r\n|\r)$/\n/ if $normalize_newlines; if (substr($_, 0, 2) eq '--') { ($maybe = $_) =~ s/[ \t\r\n]+\Z//; $bh{$maybe} and do { $eos = $bh{$maybe}; last }; @@ -279,7 +279,7 @@ sub read_chunk { else { ### OO input, OO output [slowest] while (defined($_ = $in->getline)) { # Normalize line ending - $_ =~ s/(:?\n\r|\r\n|\r)$/\n/ if $normalize_newlines; + $_ =~ s/(?:\n\r|\r\n|\r)$/\n/ if $normalize_newlines; if (substr($_, 0, 2) eq '--') { ($maybe = $_) =~ s/[ \t\r\n]+\Z//; $bh{$maybe} and do { $eos = $bh{$maybe}; last }; diff --git a/lib/MIME/Tools.pm b/lib/MIME/Tools.pm index 6889144..ec6fab7 100644 --- a/lib/MIME/Tools.pm +++ b/lib/MIME/Tools.pm @@ -28,7 +28,7 @@ $ME = "MIME-tools"; Exporter::export_ok_tags('config', 'msgs', 'msgtypes', 'utils'); # The TOOLKIT version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; # Configuration (do NOT alter this directly)... # All legal CONFIG vars *must* be in here, even if only to be set to undef: @@ -988,7 +988,7 @@ See ChangeLog file for full details. =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (F<d...@roaringpenguin.com>) F<http://www.roaringpenguin.com>. +Dianne Skoll (F<d...@roaringpenguin.com>) F<http://www.roaringpenguin.com>. Copyright (c) 1998, 1999 by ZeeGee Software Inc (www.zeegee.com). Copyright (c) 2004 by Roaring Penguin Software Inc (www.roaringpenguin.com) diff --git a/lib/MIME/WordDecoder.pm b/lib/MIME/WordDecoder.pm index 6a5044c..fc13cf6 100644 --- a/lib/MIME/WordDecoder.pm +++ b/lib/MIME/WordDecoder.pm @@ -654,7 +654,7 @@ L<MIME::Tools> =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com =cut diff --git a/lib/MIME/Words.pm b/lib/MIME/Words.pm index 3bb638b..04962f6 100644 --- a/lib/MIME/Words.pm +++ b/lib/MIME/Words.pm @@ -94,7 +94,7 @@ use MIME::QuotedPrint; #------------------------------ ### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "5.505"; +$VERSION = "5.507"; ### Nonprintables (controls + x7F + 8bit): my $NONPRINT = "\\x00-\\x1F\\x7F-\\xFF"; @@ -338,7 +338,7 @@ MIME::Base64 and MIME::QuotedPrint. =head1 AUTHOR Eryq (F<e...@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>). -David F. Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com +Dianne Skoll (d...@roaringpenguin.com) http://www.roaringpenguin.com All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff --git a/t/Entity.t b/t/Entity.t index 2ef11e2..421af5d 100644 --- a/t/Entity.t +++ b/t/Entity.t @@ -1,7 +1,7 @@ #!/usr/bin/perl -w use strict; use warnings; -use Test::More tests => 34; +use Test::More tests => 39; use MIME::Entity; use MIME::Parser; @@ -101,6 +101,45 @@ my $LINE; my $got = $e->head->mime_attr('content-type.charset'); is($got, 'iso8859-1', 'Charset: explicit'); } + + { + #-----test------ + my $croaked = 1; + eval { + my $e = MIME::Entity->build(Type => 'message/rfc822', + Encoding => 'base64', + Data => "Subject: phooey\n\nBlat\n"); + $croaked = 0; + }; + ok($croaked, 'MIME::Entity->build croaked on message/rfc822 with base64 encoding'); + ok($@ =~ /can't have encoding base64 for message type message\/rfc822/, + 'and it croaked with expected error.'); + } + + { + #-----test------ + my $croaked = 1; + eval { + my $e = MIME::Entity->build(Type => 'message/global', + Encoding => 'base64', + Data => "Subject: phooey\n\nBlat\n"); + $croaked = 0; + }; + ok(!$croaked, 'MIME::Entity->build did not croak on message/global with base64 encoding'); + } + { + #-----test------ + my $croaked = 1; + eval { + my $e = MIME::Entity->build(Type => 'multipart/ALTERNATIVE', + Encoding => 'base64', + Data => "Subject: phooey\n\nBlat\n"); + $croaked = 0; + }; + ok($croaked, 'MIME::Entity->build croaked on multipart/alternative with base64 encoding'); + ok($@ =~ /can't have encoding base64 for message type multipart\/ALTERNATIVE/, + 'and it croaked with expected error.'); + } } #diag("Create an entity"); diff --git a/t/ParamVal.t b/t/ParamVal.t index 824cd38..94251ed 100644 --- a/t/ParamVal.t +++ b/t/ParamVal.t @@ -1,6 +1,6 @@ use strict; use warnings; -use Test::More tests => 5; +use Test::More tests => 13; use MIME::Field::ContType; use MIME::WordDecoder; @@ -34,3 +34,29 @@ use Encode; is( encode('utf8', $wd->decode($field->param('answer'))), $expected, 'answer param was unpacked correctly'); } + +# Test for CPAN RT #105455 +{ + my $header = 'attachment; filename=wookie.zip size=3; junk=cabbage'; + + my $field = Mail::Field->new('Content-type'); + $field->parse( $header ); + is( $field->param('_'), 'attachment', 'Got body of header'); + is ($field->param('filename'), 'wookie.zip', 'Got correct filename'); + is ($field->param('junk'), 'cabbage', 'Got correct final param'); + + $header = 'attachment; filename="wookie.zip size=3"'; + + $field = Mail::Field->new('Content-type'); + $field->parse( $header ); + is( $field->param('_'), 'attachment', 'Got body of header'); + is ($field->param('filename'), 'wookie.zip size=3', 'Got correct filename'); + + $header = 'attachment; filename="wookie.zip;x=1"; (crap); (more_crap) adhesive=glueme'; + + $field = Mail::Field->new('Content-type'); + $field->parse( $header ); + is( $field->param('_'), 'attachment', 'Got body of header'); + is ($field->param('filename'), 'wookie.zip;x=1', 'Got correct filename'); + is ($field->param('adhesive'), 'glueme', 'Got correct final parameter'); +} -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libmime-tools-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits