Version 1.5002: Sun Aug 9 2009
- Disabled the grep interface, which has had some tricky bugs that I don't
have time to figure out.
- Fixed infinite loop that occurred for emails of less than 200 characters.
(Thanks to Julian Ladisch <email@example.com> for the bug report.)
- Updated Makefile.PL to be compatible with versions of Module::Install >
- Instead of returning an error for an empty mailbox, a valid mailbox is
returned that will immediately fail the end_of_mailbox check. This should
simplify people's code. (Thanks to Daniel Maher <firstname.lastname@example.org> for a bug
report that suggested this change in semantics.)
- More updates for the missing "m" modifier issue exposed by Perl 5.10.
(Thanks to Tom Callawa <email@example.com> for the bug report, and Andreas
König <firstname.lastname@example.org> for the patch.)
- Added some debugging information for the "cache data not validated" error.
Hopefully this will help catch the bug in the act.
Version 1.5001: Sun Jul 20 2008
- Added the missing "m" modifier to a number of regular expressions. A change
in Perl 5.10 exposed this issue. (Thanks to Anicka Bernathova
<email@example.com> for the patch.)
- Fixed an off-by-one error that would sometimes cause warnings about
- Added a hack to Makefile.PL to force Module::AutoInstall to be included for
- Fixed a problem in the PREOP rewriting that would cause it to fail on
Version 1.5000: Thu Jan 11 2007
- The Cache and Grep implementations now detect when changes have occurred to
the file being parsed, and automatically invalidate their cache values and
revert to the Perl implementation. NOTE: This works well for appending to
the mailbox, but undefined behavior occurs if modifications are made to the
mailbox at locations earlier than the current position. (Thanks to Armin
Obersteiner <firstname.lastname@example.org> for the feature suggestion.)
- Changed the reset test so that it doesn't create output with inconsistent
line endings in the case of a dos mailbox.
- Fixed a bug where occasionally the reading of the next email will go into an
infinite loop when reading from standard input. (Thanks to
<email@example.com> for the bug report and sample input.)
- read_next_email now returns undef on end of file. (Thanks to Lucas Nussbaum
<firstname.lastname@example.org> for first reporting the bug. Thanks to Stephen
Gran <email@example.com>, Frank Lichtenheld <firstname.lastname@example.org>, Steinar
H. Gunderson <email@example.com>, Christian Hammers <firstname.lastname@example.org>,
gregor herrmann <email@example.com>, and Joey Hess
<firstname.lastname@example.org> for their efforts to fix or work around the bug. Finally,
thanks to Tassilo von Parseval <Tassilo.von.Parseval@rwth-aachen.de> for
(mis)using the module in an intuitive way that prompted the solution.)
- Simplified code by removing end_of_file attribute of parser objects.
Version 1.4005: Thu Aug 24 2006
- Fixed a bug where emails with a line near the end that start with "From "
would cause the Grep implementation to go into an infinite loop. (Thanks to
Volker Kuhlmann <VolkerKuhlmann@gmx.de> for the bug report.)
- Fixed some minor coding style issues.
Version 1.4004: Tue Jul 11 2006
- Fixed a bug where, when emails are incomplete, the Perl parser would cache
incorrect information, causing the Cache implementation to go into an
infinite loop when it tried to use the invalid information.
- Improved the behavior for multi-part emails that lack a valid ending
boundaries. Instead of treating the rest of the mailbox as part of the
email, the Perl and Grep parsers now find the end of the email using (1) a
Content-Length header if it is present, or (2) the next valid "^From " line
after the email's header. (Many thanks to Volker Kuhlmann
<VolkerKuhlmann@gmx.de>, Eduard Bloch <email@example.com>, and Joey Hess
<firstname.lastname@example.org> for their efforts to track down the cause of the bug.
Special thanks to Volker for suggesting the right behavior. :)
- Simplified the code some
Version 1.4003: Sun May 21 2006
- Fixed a bug where multi-part emails having boundaries containing characters
like " " and "+" would cause the remainder of the mailbox to be treated as
part of the email with the boundary. (Thanks to Volker Kuhlmann
<VolkerKuhlmann@gmx.de> for first reporting the bug, and thanks to Joey Hess
<email@example.com> for the bugfix.)
- Fixed a previously unrevealed fault in the mailbox for the separators test.
(The last message's separator wasn't used correctly.)
Version 1.4002: Thu Feb 9 2006
- Dropped tzip support. The program seems poorly supported and buggy. (I can't
get it to run right on Mac, for example.)
- An invalid cache is detected and overwritten. This can occur if one changes
architectures, or if the cache is otherwise corrupted. (Thanks to Volker
Kuhlmann <VolkerKuhlmann@gmx.de> for the feature suggestion.)
- Fixed a major memory consumption bug in the Perl implementation, where the
read buffer would grow exponentially. This caused the module to use memory
proportional to the size of the mailbox, rather than the size of the largest
email. (Thanks to David Cantrell <firstname.lastname@example.org> for the bug
Version 1.4001: Tue Aug 2 2005
- Fixed a bug where emails involving time zones of length more than 3
characters (e.g. "WETDST") would not be processed correctly. (Thanks to
Hans F. Nordhaug <Hans.F.Nordhaug@hiMolde.no> for the bug report.)
- Fixed some undefined value warnings for some test cases.
- Fixed a bug where mailboxes having emails with rfc822 attachments would not
be parsed correctly
Version 1.4000: Thu Jul 7 2005
- Fixed a long-standing bug in the parsing of mail messages containing mail
attachments. (Thanks to Brian May <email@example.com> for the bug report.)
- Dropped X-From-Line support for two reasons: (1) it seems to have
disappeared from newer versions of Gnus, and (2) this module is for mbox
format. (Thanks to Brian May <firstname.lastname@example.org> for prompting this.)
- Changed the mail parsing so that a blank line *must* separate mail messages,
as per mail(5) (http://www.qmail.org/man/man5/mbox.html). Lack of a blank
line will cause the second email to be considered to be part of the
Version 1.3001: Mon Jun 6 2005
- Changed the testing code to use a more aggressive technique for clearing any
existing cache, even if it is not readable.
- Fixed a problem with the grep implementation where locale settings (LC_ALL,
LC_COLLATE, LANG, LC_CTYPE, LC_MESSAGES) would cause it to fail. (Thanks to
Joey Hess <email@example.com> for the bug report.)
Version 1.3000: Mon Mar 14 2005
- Merged the internal caches used by the different mailbox parser
implementations. This allows sharing of caching information. NOTE: Tighter
integration of the classes means that you can no longer instantiate any of
the implementations directly; you must use Mail::Mbox::MessageParser only.
- Fixed goofy version dependency for Benchmark::Timer.
- Fixed improper identification of mailboxes whose first email has a body
containing a large number of foreign characters. (Thanks to Nigel Horne
<firstname.lastname@example.org> for the bug report and sample data.)
- Fixed a spurious warning in a test case. (Thanks to Nigel Horne
<email@example.com> for the bug report.)
- Fixed a test code bug that would cause some failed tests to incorrectly
- Fixed a bug where emails with attachments would cause the mailbox parser to
enter an infinite loop. (Thanks once again to Joey Hess <firstname.lastname@example.org>
for the excellent bug report.)
- Fixed a bug where the cache would not be saved to disk when the file was
finished being read.
- Fixed a bug in the test cases where some differences in test output would
not be detected.
- Fixed a bug in Mbox::Mail::MessageParser::Grep that would cause it to
improperly identify separate emails in a mailbox if the "From " line looked
like "From klopp Mon Jan 5 08:50:15 +0100 2004". (Thanks to Frederic Klopp
<email@example.com>" for the bug report and sample mailbox.)
Version 1.2130: Tue Dec 21 2004
- Fixed version numbers, which were incompatible with some modules. (Thanks to
Tassilo von Parseval <firstname.lastname@example.org> for the bug
- Fixed a dependency version error for Benchmark::Timer
- Switched to Test::More for better error reporting
- Improved test failure reporting
- Fixed a bug where messages embedded in other messages as RFC 822 attachments
would be treated as separate emails. (Thanks to Will Fiveash
<email@example.com> for the bug report.)
- Moved all configuration data to M::M::MP::Config
Version 1.21.1: Thu Sep 16 2004
- Fixed broken dependency specification in Makefile.PL
- Removed Module::Install extension dependency code from Makefile.PL. (Not
needed with fixed extensions.)
Version 1.21.0: Wed Sep 15 2004
- Fixed missing file warnings from "make distcheck" resulting from a
workaround for a MakeMaker bug. (Thanks to Ed Avis <firstname.lastname@example.org> for
the bug report.)
- Dropped force_processing in M::M::Grep (all files treated as text), since
M::MessageParser detects file types. This fixes a Perl warning issued when
force_processing is false and M::MessageParser determines that the file is
text, but it contains a binary character. (Thanks to Jason Brunette
<email@example.com> for the bug report.)
- Updated Makefile.PL to use Module::Install
- More robust use of GNU grep to find emails on DOS systems (Thanks to Martin
Hosken <firstname.lastname@example.org> for the initial patch)
- Fixed an uninitialized value warning in Cache.pm
- Made everything work with DOS-style line endings. Added endline() function
to return the detected line ending
- Now keeps reading the first paragraph until a maximum number of bytes have
been read. This should help people who use MUAs that add a lot of extra
header information to the first email in a mailbox. (Thanks to Graham Gough
<email@example.com> for pointing out the problem with VM under Emacs.)
- At installation, you no longer have to provide a full path to the external
programs. (Thanks to Ed Avis <firstname.lastname@example.org> for the suggestion.)
- Fixed _print_debug_information so that it prints the values of options
correctly. (Thanks to Jason Brunette <email@example.com> for
the great bug report.)
- Fixed a file handle leak when processing non-mailbox files. (Thanks to Jason
Brunette <firstname.lastname@example.org> for the great bug report.)
- Fixed portability issues for Windows. (It should now work under the normal
Windows command shell.) Note that this requires the use of a temporary file
for decompression of file handles on Windows--a minor security risk.
- Makefile.PL version detection for GNU grep now works correctly for version
numbers which end with letters. (Thanks to David Dyck <email@example.com>
for the bug report.)
- Fixed typo bugs in a couple test cases.
- Added "perl Makefile.PL" version checks for external programs like grep.
(Suggestion by David N. Blank-Edelman <firstname.lastname@example.org>)
- Fixed a typo in the documented synopsis (Thanks to Christophe Nowicki
<email@example.com> for the report.)
- Implemented a portable ungetc version of FileHandle, and changed this module
to use it instead of IO::String. This will hopefully fixed the
system-dependent bugs in the last release. (Thanks to David N.
Blank-Edelman <firstname.lastname@example.org> for providing a test environment.)
- Improved compatibility with Windows. (Cygwin works, but we're still not
there yet for Windows command shell.)
- Streamlined installation for cases where caching is not enabled in
- Added test cases with spaces in the mailbox names. (Thanks to Johan Ekenberg
<email@example.com> for finding the bug and submitting a partial patch.)
- Fixed line ending bugs for MS-DOS/Windows (Tests now pass under cygwin)
- Fixed mailbox detection problem with mailboxes whose first email is a
pseudo-email used to store mailbox state information. (Thanks to Johan
Ekenberg <firstname.lastname@example.org> for the bug report.)
- Fixed a bug on freebsd where mailboxes of size less than 2000 bytes would be
incorrectly processed. (This fix is a less-than-optimal one which requires
IO::String. I may later get the gumption to do it right using PerlIO::var)
- Testing modules are no longer (accidentally) installed.
- External programs are now queried during installation instead of just using
whatever is in your path (a security risk). (Thanks to David N.
Blank-Edelman <email@example.com> for the bug report.)
- Changed testing to use PERLRUN instead of FULLPERLRUN, which is not
available with older versions of MakeMaker that ship with older versions of
Perl. (Thanks to Ed Avis <firstname.lastname@example.org> for catching this.)
- Cache file permissions are now set to protect against prying eyes. (Patch by
Joey Hess <email@example.com>)
- Improved speed testing.
- Added support for opening of files, and decompressing files or filehandles.
- Restructured test cases.
- Fixed a bug in _PUT_BACK_STRING which would cause major failures on Solaris.
- Fixed compatibility problems with perl 5.005_01
- Fixed grep implementation for filenames with spaces in them. (Thanks to
Johan Ekenberg <firstname.lastname@example.org> for the bug report and patch.)
- Added "force_processing" option to force processing of files even if they
look to be binary or non-mailboxes.
- Initial version, with caching and grep support. Code taken from version 5.00