- Improved the documentation for -Y. (Thanks to Justin Gombos
for the suggestion.)
- Dropped tzip support in Mail::Mbox::MessageParser
- Added -L flag to follow symbolic links. (Thanks to Peter Teuben
for prompting the idea.)
- Fixed grepmail so that it works with Mail::Mbox::MessageParser 1.5000
(Thanks to Paul for the bug report, and Alexey Tourbin for the fix.)
- Fixed testspeed.pl to properly call report() instead of get_report() on new
versions of Benchmark::Timer
Based on patch provided by Martin Wilke via PR 34438.
- Changelog
- Fixed backwards diff in test cases
- Updated Mail::Mbox::MessageParser dependency to latest version, and updated
test cases as well. (Thanks to Christoph Thiel <ct@kki.org> for the heads
up.)
Version 5.3031: Mon Jun 6 2005
- Fixed a bug that would cause the date_manip test to fail in some time zones.
(Thanks to Kurt Roeckx <kurt@roeckx.be> for the Debian bug report, and Joey
Hess <joeyh@debian.org> for notifying me.)
- Added a missing "use" statement in Test::Utils.
- Improved date matching for mailboxes containing invalid dates. (Thanks to
Steve Revilak <srevilak@users.sourceforge.net> for the patch.)
Version 5.3030: Tue Dec 21 2004
- Improved test failure reporting
- Fixed version numbers, which were incompatible with some modules. (Thanks to
Tassilo von Parseval <tassilo.von.parseval@rwth-aachen.de> for the bug
report)
- Cleaned up code a bit
Version 5.30.2:
- Switched to Test::More for better test reporting
Version 5.30.1: Thu Sep 16 2004
- Fixed Date::Manip parsing of single-point times such as "today". (Bug found
by Marten van Wezel <puntloos@users.sourceforge.net>)
- Changed Makefile.PL to use Module::Install
- Changed version numbering
- Dropped Benchmark::Timer from the distribution, since the updated version
has been released
New in version 5.30:
- Updated t/recursive.t to work better when there are version control
directories in t/mailboxes/directory.
- Updated t/invalid_mailbox.t to be more robust.
- Fixed a bug in t/invalid_mailbox.t for Solaris.
- -F now works again
- Changed incorrect "-h" to "--help" in two error messages.
- Now correctly handles DOS-style line endings in mailboxes.
- Changed single dates so that they are treated as inferred spans, instead of
a single day. For example "2004" now means "between Jan 1 2004 and Jan 1
2005" instead of "between Jan 1 2004 and Jan 2 2004".
* Fixed a bug in speed tests which would cause the grep implementation to
fail.
* Fixed incorrect output for emails without message bodies.
* Fixed filename output for -n, -m and other situations when input comes
from standard input.
* Added -w flag to match word boundaries.
* A warning is now issued and caching is disabled if -C is not specified
and $HOME is not set (as might be the case when running grepmail in a
cron job).
Major changes since 5.00:
New in version 5.22:
- X-Mailfolder header no longer has a line number when -n is used. (bugfix by
Kevin Pfeiffer <pfeiffer@iu-bremen.de>)
- New -B flag prints abbreviated headers (initial patch by Kevin Pfeiffer
<pfeiffer@iu-bremen.de>)
- Headers spanning multiple lines are now printed correctly in warnings and
such.
- Fixed a spurious warning which would be printed if caching was not enabled.
- grepmail will now disable caching if the caching version of
Mail::Mbox::MessageParser can not be loaded, instead of exiting.
New in version 5.21:
- Fixed line ending bugs under MS-DOS/Windows.
New in version 5.20:
- Added speed testing to the distribution
- Fixed Makefile.PL so that test modules would not be installed.
- 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 <ed.avis@kbcfp.com> for catching this.)
- Fixed interactive installation problems. (Thanks to Joey Hess
<joeyh@debian.org> for catching this (again).)
- Fixed broken searching of $HOME/mail, $HOME/Mail, and $HOME/Mailbox
directories when a mail folder can not be found. Changed $MAIL to $MAILDIR
since $MAIL usually points to the user's inbox. (Bug found and initial patch
by Peter Cordes <peter@llama.nslug.ns.ca>.)
- Cache file permissions are now set to protect against prying eyes. (Patch by
Joey Hess <joey@kitenet.net>)
- The user can now specify the cache file location with the -C flag.
- Fixed compatibility problems with perl 5.005_01
New in version 5.10:
- Extracted mail parsing into the new Mail::Mbox::MessageParser module.
- Fixed small performance loss bugs in short-circuit matching of headers which
were introduced in the last version
- Fixed some uses of uninitialized values (Originally reported by Ed Avis
<ed.avis@kbcfp.com>.)
- Improved performance a bit.
- The Makefile.PL now uses the default values when run non-interactively.
- Caching is now enabled by default. (It's no longer experimental.) Users can
disable it during installation.
- Date specifications without times (e.g. "today") are interpreted as midnight
of the given day instead of the current time of that day. grepmail now
relies on Date::Manip to handle this--users must upgrade Date::Manip to get
this support. (Thanks to Reuben Thomas <rrt@sc3d.org> for working with
Sullivan Beck <sbeck@cise.ufl.edu> to get TodayIsMidnight added to
Date::Manip. Original bug report by Philip Douglass
<philipsd@users.sourceforge.net>)
- Restructured test cases
Changes:
- grepmail is now orders of magnitude faster for mailboxes which have very
large (>30MB) emails in them
- "grep" is now used to find the start of emails, if it is installed. For
mailboxes with large emails in them, this can speed things up by about 5x.
- Reduced memory consumption by about 3 times.
- -- now marks the end of options and the beginning of folders (Thanks to
Reuben Thomas <rrt@sc3d.org> for the idea.)
- -f now reads patterns from a file like GNU grep does. (Feature suggestion by
Darxus@chaosreigns.com)
- Added smail compatibility. (Thanks to Roy <qroy@ghg.net> for the patch.)
- The "**" prefix on warnings has been changed to "grepmail:"
- Date specifications without times (e.g. "today") are interpreted as midnight
of the given day instead of the current time of that day. (Bugfix and
initial patch by Reuben Thomas <rrt@sc3d.org>.)
- Fixed -i when used with -Y--it was always case sensitive. (Bugfix by Michael
C. Toren <mct@toren.net>)
- Updated t/functionality.t to avoid running gzip-related test cases when gzip
is not installed on the system.
- Improved some error messages so that they prepend "grepmail: " as they
should
- Cleaned up some warnings about ambiguous hash values (Thanks to Philip
Douglass <philipsd@sf.net> for pointing them out in a bug report.)
- Added a warning about the version of perl required for new pattern features
(Thanks to Philip Douglass <philipsd@sf.net> for the bug report.)
- -t flag is now -j
- Fixed broken Gnus support
- Improved test case for Gnus
New in version 4.91:
- Added missing dependency for Storable.
- Storable now only necessary if you plan on using caching
- Fixed a bug in test case 83
- Changed -s to support "<", ">", "<=", ">=" and "-". (Feature suggestion by
Jens Schleusener)
New in version 4.90:
- Made Mail::Folder::SlowReader object-oriented
- Removed FastReader from distribution. (It's no longer faster! Also, I
couldn't integrate it easily with the new object-oriented reader design.)
- Fixed a bug where in some cases emails were not being converted to mbox
format before being printed
- Made searches involving header-related constraints a bit faster
- Added missing documentation for -F flag
- Added -f flag to search based on message status. (Feature suggestion by
Richard D Alloway)
- Fixed a bug where -X and -Y flags after a pattern would not be processed
- Added experimental caching capability, which is perhaps 5% slower the first
time you run grepmail on a mail folder, and 10-20% faster on subsequent
runs. The cache is stored in ~/.grepmail-cache. You must edit the grepmail
file and set $USE_CACHING to true to use this feature. (Idea and initial
patch by terry jones)
New in version 4.81:
- Fixed incompatibilities with older (5.005_03) versions of Perl
- Fixed test cases which fail on operating systems (shells?) which emit
"Broken Pipe" to standard output. I'd rather break the pipe than have
grepmail gobble megabytes of data when it can't handle it.
- Added --version flag (patch by Gerald Pfeifer)
- Added documentation for -V flag.
Package changes:
Use buildlink2. Use perl5/module.mk.
Only the "version" with FastReader is now build (no more
${PREFIX}/bin/grepmail-{quick,full}).
New in version 4.80:
- Added prototype -E flag to support complex searches. (Thanks to Nelson Minar
<nelson@monkey.org> for the original suggestion in Sep 2000, And terry jones
<terry@eatoni.com> for seconding the idea.)
- Added -F flag to force processing of files which grepmail determines are not
mailboxes. (feature suggested by terry jones <terry@eatoni.com>)
- Documentation updated to reflect that -B no longer exists. (By terry jones
<terry@eatoni.com>)
- The test to determine if a file is a mailbox was improved to adhere better
to RFC 822, while still providing some flexibility. (Initial suggestion and
patch by terry jones <terry@eatoni.com>)
- Improved date extraction to also look at the 'From ' line when both the
Received and Date headers fail. (patch by terry jones <terry@eatoni.com>)
- Fixed a long-standing bug in which filenames of compressed mailboxes which
contained special shell characters would cause problems. (Thanks to Jost
Krieger <jkrieger@users.sourceforge.net> for giving me the kick in the pants
to finally fix this.)
- Fixed a long-standing bug in which grepmail would incorrectly report the
filename of compressed mailboxes in error messages. (Thanks to Jost Krieger
<jkrieger@users.sourceforge.net> for giving me the kick in the pants to
finally fix this.)
New in version 4.72:
- 20% speed improvement in the Perl mailbox parser (By terry jones
<terry@eatoni.com>)
- Fixed a number of potential bugs in command line processing and date
processing. (By terry jones <terry@eatoni.com>)
- Cleaned up return values and use of quotes in the code. (By terry jones
<terry@eatoni.com>)
- Fixed a bug in -X signature processing (By terry jones <terry@eatoni.com>)
- Modified anonymize_mailbox to anonymize To: and Subject: in the header.
(Thanks to terry jones <terry@eatoni.com> for the idea.)
- Fixed a bug in FastReader where emails less than 255 characters in size
would occasionally cause a core dump. (Thanks to terry jones
<terry@eatoni.com> for submitting a bug report and sample mailbox.)
- Made "big" test mailboxes 4 times bigger for more meaningful speed tests
New in version 4.71:
- Fixed warning about SIGHUP on Windows.
- Fixed -u functionality for emails without the Message-Id header. (Thanks to
Felix E. Klee <felix.klee@inka.de> for finding the bug.) NOTE: grepmail will
use Digest::MD5 to compute a hash for the email header. If you don't have
Digest::MD5, grepmail will just store the header. So, the default tradeoff
is time for space.
- Fixed a bug in the test script. (Thanks to Joey Hess <joey@kitenet.net> for
finding and fixing the bug.)
- Extended workaround for spurious warning about undefined variable to Perl
5.8. (Thanks to Joey Hess <joey@kitenet.net> for reporting the ongoing
heisenbug.)
New in version 4.7:
- Fixed signal handling to make grepmail easier to debug. Thanks to Ilya
Zakharevich for providing the solution.
- Fixed a possible performance problem in reading of emails (Perl
implementation), and documented the settings in the README.
- Expanded the pattern for matching the start of emails to allow different
types of emails to be parsed.
- Fixed a bug where -R was reported as not recognized. (Thanks to Nicholas
Riley <nriley@sf.net> for the bug report and fix.)
- "anonymize_mailbox" utility included to help people submit bug reports
- If a mailbox can not be found, grepmail now searches the $home/mail,
$home/Mail, $home/Mailbox directories (or the directory specified by the
MAIL environment variable). (Thanks to Michael Friendly <friendly@yorku.ca>
for the feature suggestion and initial patch.)
- Added -X flag to allow the user to specify a pattern for the signature
separator. (Thanks to Michael Friendly <friendly@yorku.ca> for the feature
suggestion.)
- Added -Y flag to search specific headers. (Thanks to Terry Jones
<terry@eatoni.com> for the idea to automatically wrap header lines as
necessary.)
New in version 4.60:
- Removed -B flag and added -S flag. -B is now performed using -bS.
- Added installation flags to suppress interactive installation. (Thanks to
Joey Hess <joey@kitenet.net> for the problem report. He had to patch
Makefile.PL for his Debian packaging.)
- Fixed a slow implementation of searching for signatures that would cause
grepmail to crawl for very large emails. Thanks to Joey Hess
<joey@kitenet.net> for discovering the inefficiency.
- Fixed a short-circuit which should have bypassed the search for signatures
if -B was not specified. Thanks to Joey Hess <joey@kitenet.net> for finding
the bug.
- Implemented a new Perl parser which is 5% to 50% faster depending on how
I/O-bound your system is.
- Restructured the code a bit and improved detection of invalid arguments.
New in version 4.51:
- grepmail now dies gracefully when invalid patterns like 'strcpy(' are
supplied. (It should be 'strcpy\('.)
- Fixed a bug in attachment boundary matching which would cause the boundary
match to fail if the boundary contained special pattern matching characters.
(Thanks to Richard Everson <rme at users.sourceforge.net> for identifying
the bug, and providing a sample email which demonstrates the problem.)
- Added a check for Inline 0.41 or better during "perl Makefile.PL" when
Mail::Folder::FastReader is selected to be installed. (Thanks to Brian L.
Johnson <blj8@blj8.com> for the problem report.)
- Fixed a bug where grepmail would fail to print matching emails which had
signatures, and added a test case for it. This bug was introduced with -B
support in version 4.49. (A *huge* thanks to Moritz Barsnick
<barsnick@gmx.net> for reporting the bug and doing the initial analysis of
the cause.)
- Modified Makefile.PL to ask whether the user wants FastReader regardless of
whether they specified arguments to "make Makefile.PL".
- Modified Makefile.PL to allow the user to interactively specify the
installation path.
- Fixed a typo in debugging output for emails without "Date:" headers.
- Improved error messages.
- Usage message now displays just the flags, --help shows a summary of their
meanings as well.
New in version 4.50:
- Added X-Draft-From to support newer versions of Gnus (Thanks to Nevin Kapur
<nevin@jhu.edu> for the patch).
New in version 4.49:
- Fixed test cases to work around PATH modifications made by Date::Manip
- Added -B to search the body but not the signature. (Thanks to Helmut
Springer <delta@faveve.uni-stuttgart.de> for the feature request.)
- Added LICENSE file. (Thanks to Janet Casey <jcasey@gnu.org> for the
reminder.)
New in version 4.48:
- Mail::Folder::FastReader migrated from XS to Inline.
- -H flag added by Nevin Kapur <nevin@jhu.edu>
- Error messages are localized in test cases. (Thanks to cpan-testers and in
particular Jost Krieger <Jost.Krieger@ruhr-uni-bochum.de> for finding this
bug and diagnosing it.)
- Fixed a problem with timezones in the test cases. (Thanks to Roy Lanek
<lanek@ranahminang.net> for helping me debug this.)
- Added a check in the test cases for determining if the user's timezone is
not recognized by Date::Manip.
New in version 4.47:
- Grepmail now converts Gnus emails into mbox emails before printing them.
(Thanks to Johan Vromans <JVromans@squirrel.nl> for supplying a patch and
explaining the need for it.
- Fixed a couple bugs in -M processing
- -M is now 19% faster. (It's now only about 9% slower than without -M.)
New in version 4.46:
- Fixed a bug in -u message id processing. (Thanks go to an anonymous bug
reporter on SourceForge.)
- Added more workarounds to prevent warnings resulting from a bug in Perl 5.6
(Thanks to Joey Hess <joey@kitenet.net>)
- Added -Z flag to tell grepmail not to use Mail::Folder::FastReader even if
it is installed.
- Fixed a bug introduced in version 4.44 where -m would not work unless used
with -n. (Thanks to Imre Simon <is@ime.usp.br> for catching this.)
- --help anywhere on the command line now causes the help to be printed,
instead of only when used as the first argument.
- Test script now exercises both the Mail::Folder::FastReader and perl mailbox
implementations as appropriate.
- Restructured code to separate out Perl mailbox implementation as
Mail::Folder::SlowReader. (This module is embedded in the grepmail script.)