minc
6 years agoundocumented lightly tested support for CODE ref filters master
epg Gillespie [Sat, 3 May 2014 00:58:38 +0000 (17:58 -0700)]
undocumented lightly tested support for CODE ref filters

For 11 years the simple filtering has been fine, but filtering of code review
mails at work finally requires something more complex quick example:

@FILTERS = (
  # Prioritize reviews to/cc me in special folder.
  sub {
      my $h = shift;
      match($h, ' TO', ['main-review-list', 't'])
          && match($h, ' TO', ['me', 't'])
          && return 'reviews';
  },
  # Isolate the spammy reviews.
  [' TO', ['hi-traffic-review-list', 'wharrgarbl']],

  # Other reviews follow normal rules below.
);

6 years agoquick hack to update a db mapping message-id to message file names
epg [Thu, 17 Apr 2014 04:46:55 +0000 (21:46 -0700)]
quick hack to update a db mapping message-id to message file names

6 years agoquick hack to make inc require-able
epg [Thu, 17 Apr 2014 04:46:30 +0000 (21:46 -0700)]
quick hack to make inc require-able

TODO: Take this further; lots of global code scattered around, including some
that runs mh commands.

6 years agoConvert dates to local time (error handling untested).
epg [Tue, 15 Apr 2014 18:27:52 +0000 (11:27 -0700)]
Convert dates to local time (error handling untested).

6 years agoAdd trivial program to summarize header and MIME info.
epg [Mon, 14 Apr 2014 01:21:12 +0000 (18:21 -0700)]
Add trivial program to summarize header and MIME info.

6 years agoStop logging.
epg@google.com [Tue, 3 Dec 2013 20:40:34 +0000 (12:40 -0800)]
Stop logging.

In 11 years, I've never needed the log.  I have often moved files from mh folder
back to Maildir and rerun as I developed a filter.

Probably this log made sense before I added the scan-esque status line for
each message at 2005-09-02 22:36:10 +0000 .  So this has been redundant for
over 8 years.  Nice.

11 years agoFix bug after making get_headers return hash ref.
epg@google.com [Thu, 2 Apr 2009 20:41:23 +0000 (13:41 -0700)]
Fix bug after making get_headers return hash ref.

(scan_spam): Don't dereference the cached hash ref.

11 years agoKill stray XXX comment.
epg@google.com [Wed, 1 Apr 2009 23:59:35 +0000 (16:59 -0700)]
Kill stray XXX comment.

11 years agoAs ajk points out, get_headers really just want to a reference.
epg@google.com [Wed, 1 Apr 2009 23:58:31 +0000 (16:58 -0700)]
As ajk points out, get_headers really just want to a reference.

11 years agoImplement custom scan of SPAM messages instead of using scan(1).
epg@google.com [Wed, 1 Apr 2009 23:40:27 +0000 (16:40 -0700)]
Implement custom scan of SPAM messages instead of using scan(1).

If the header of a message contains garbage characters (not 2047-quoted
garbage characters, actual multi-byte garbage!) (Chinese or Russian spam)
scan(1) will happily print them to the tty, which hurts.

(%SPAM): Replace @SPAM global list with a hash.
(store_message): Drop unused $status variable.  Don't update @SPAM .
(scan_line): Factor out the actual scan line formatting from filter_mail to
  this new function.
(filter_mail): Append message number and header hash to %SPAM .
(maildir_spam): Append message number and spam maildir file name to %SPAM .
(scan_spam): Add function to scan spam messages with scan_line .  Deal with 3
  cases: spam filtered via filter_mail and spam filtered via maildir_spam in
  either run or -n mode.  For the latter two, open the message file from the
  mh SPAM folder or from the spam maildir, respectively, to load the header.

11 years agoDon't try \r line-erasing tricks if stdout is not a tty.
epg@pretzelnet.org [Wed, 1 Apr 2009 21:28:17 +0000 (14:28 -0700)]
Don't try \r line-erasing tricks if stdout is not a tty.

11 years agoDump Id keyword and /usr/bin/env trampoline.
epg@google.com [Thu, 26 Mar 2009 22:41:23 +0000 (15:41 -0700)]
Dump Id keyword and /usr/bin/env trampoline.

12 years ago(getfiles): Fix long-standing annoyance: "1 messages..."
epg [Tue, 25 Mar 2008 00:08:37 +0000 (00:08 +0000)]
(getfiles): Fix long-standing annoyance: "1 messages..."

14 years agoLook for spam in spam/new.
epg [Thu, 13 Apr 2006 02:29:21 +0000 (02:29 +0000)]
Look for spam in spam/new.

14 years ago(filter_mail): Slight problem with r1880: we don't print scan lines
epg [Sun, 2 Apr 2006 02:52:12 +0000 (02:52 +0000)]
(filter_mail): Slight problem with r1880: we don't print scan lines
for spam messages, so we still need to print \r for those.

14 years ago(maildir_spam): Don't whine if maildir/spam doesn't exist.
epg [Thu, 30 Mar 2006 21:50:50 +0000 (21:50 +0000)]
(maildir_spam): Don't whine if maildir/spam doesn't exist.

14 years agoCorrect minor oops in last.
epg [Thu, 30 Mar 2006 10:16:06 +0000 (10:16 +0000)]
Correct minor oops in last.

14 years agoMake a couple of tiny adjustments to the early exit case for no new
epg [Thu, 30 Mar 2006 09:19:06 +0000 (09:19 +0000)]
Make a couple of tiny adjustments to the early exit case for no new
messages so that $maildir/spam still gets cleared out.

14 years agoHandle files in $maildir/spam (from new mdeliver processor).
epg [Thu, 30 Mar 2006 03:08:12 +0000 (03:08 +0000)]
Handle files in $maildir/spam (from new mdeliver processor).

14 years ago(get_highest_msgnum): Fix minor bug, returning one less than it should
epg [Sat, 25 Mar 2006 01:39:55 +0000 (01:39 +0000)]
(get_highest_msgnum): Fix minor bug, returning one less than it should
be on the first call for a folder.  This was only noticeable in -n mode
because store_message loops to find a fresh number.

14 years ago(filter_mail): All this \r printing, line clearing stuff, is just not
epg [Wed, 15 Feb 2006 19:56:23 +0000 (19:56 +0000)]
(filter_mail): All this \r printing, line clearing stuff, is just not
necessary any more, now that every message gets a full summary line
printed.

14 years agoIgnore SIGPIPE. I can't believe perl leaves the default SIGPIPE
epg [Fri, 3 Feb 2006 02:24:12 +0000 (02:24 +0000)]
Ignore SIGPIPE.  I can't believe perl leaves the default SIGPIPE
behavior of aborting intact.  At least 5.8.0 does on some Linuxes...

14 years ago(mark): Since new.c only uses the lists from .mh_sequences, it doesn't
epg [Thu, 19 Jan 2006 19:48:46 +0000 (19:48 +0000)]
(mark): Since new.c only uses the lists from .mh_sequences, it doesn't
parse them, simply appending here really hurts.  Bite the bullet and
properly merge new messages into the existing .mh_sequences message
lists (i.e. 1-39 becomes 1-40).

14 years agoThis 35k message folder at work is getting burdensome. minc was
epg [Wed, 18 Jan 2006 21:25:45 +0000 (21:25 +0000)]
This 35k message folder at work is getting burdensome.  minc was
reading that entire folder everytime it stored a message there!  Twice
because mark(1) does it too.  The first is my fault, the second mh's.
I still haven't gone through mh to get rid of unnecessary readdirs, so
work around the problem here.

(get_highest_msgnum): Only read a directory once, saving the highest
message number and incrementing it on each call.

(mark): New function to add a message to a sequence.

(store_message): Use mark instead of running mark(1).

15 years ago(find_mh_folder): Require $regexp to be a regular expression object
epg [Tue, 22 Nov 2005 00:59:40 +0000 (00:59 +0000)]
(find_mh_folder): Require $regexp to be a regular expression object
(qr//) instead of a string.  Now it's up to the user whether it
matches sensitive to case or not, or uses any other options.

15 years ago(find_mh_folder): Stupid variable rename.
epg [Tue, 22 Nov 2005 00:46:36 +0000 (00:46 +0000)]
(find_mh_folder): Stupid variable rename.

15 years agoEven easier .folders sorting; now all you have to do is provide a list
epg [Sat, 19 Nov 2005 00:46:01 +0000 (00:46 +0000)]
Even easier .folders sorting; now all you have to do is provide a list
of regexps, and the sorting will be according to their order.  You can
still define your own sorter, if necessary.

15 years agoOops, create_dot_folders needs to load .minc.
epg [Sat, 19 Nov 2005 00:26:25 +0000 (00:26 +0000)]
Oops, create_dot_folders needs to load .minc.

15 years agoOops, POD needs the blank lines i removed in r1831; restore.
epg [Fri, 18 Nov 2005 23:58:26 +0000 (23:58 +0000)]
Oops, POD needs the blank lines i removed in r1831; restore.

15 years agoNew -r option for rebuilding the .folders file from scratch.
epg [Fri, 18 Nov 2005 23:57:04 +0000 (23:57 +0000)]
New -r option for rebuilding the .folders file from scratch.

15 years agos/update_folders/update_dot_folders/
epg [Fri, 18 Nov 2005 23:28:11 +0000 (23:28 +0000)]
s/update_folders/update_dot_folders/

15 years agowhitespace police
epg [Fri, 18 Nov 2005 23:25:53 +0000 (23:25 +0000)]
whitespace police

15 years agoSupport custom sorting of folders in the .folders file.
epg [Fri, 18 Nov 2005 23:03:54 +0000 (23:03 +0000)]
Support custom sorting of folders in the .folders file.

15 years agoGet rid of dryrun.log: in -n mode, don't log at all. I don't think
epg [Tue, 20 Sep 2005 23:59:34 +0000 (23:59 +0000)]
Get rid of dryrun.log: in -n mode, don't log at all.  I don't think
anyone ever actually used the dryrun log, and if we get rid of it,
then minc -n becomes a better mdfrm.

15 years ago(filter_mail): Catch (and discard) exceptions when subject and from
epg [Mon, 19 Sep 2005 16:15:36 +0000 (16:15 +0000)]
(filter_mail): Catch (and discard) exceptions when subject and from
headers don't exist.

15 years ago(filter_mail): Lose XXX comment for the stupid pop that went away in
epg [Mon, 19 Sep 2005 16:13:20 +0000 (16:13 +0000)]
(filter_mail): Lose XXX comment for the stupid pop that went away in
r1773.

15 years ago(update_folders): Only error out if opening .folders failed for any
epg [Mon, 12 Sep 2005 15:26:54 +0000 (15:26 +0000)]
(update_folders): Only error out if opening .folders failed for any
reason other than ENOENT.  For ENOENT, we'll go ahead and create it.

15 years ago(MAIN): Only call update_folders when -n not specified.
epg [Mon, 12 Sep 2005 15:16:34 +0000 (15:16 +0000)]
(MAIN): Only call update_folders when -n not specified.

15 years ago(find_mh_folder): Don't know why, but the MAGIC_TO crap wasn't doing
epg [Mon, 12 Sep 2005 15:15:46 +0000 (15:15 +0000)]
(find_mh_folder): Don't know why, but the MAGIC_TO crap wasn't doing
the same kind of match as the other filters, and you couldn't use
parts of the match in the folder name.  Fix.

15 years ago(store_message): wtf, log spam saves too, we already logged the
epg [Wed, 7 Sep 2005 23:03:33 +0000 (23:03 +0000)]
(store_message): wtf, log spam saves too, we already logged the
headers after all...

15 years agoLose -p (print file names) option; this can be implemented directly
epg [Wed, 7 Sep 2005 06:46:52 +0000 (06:46 +0000)]
Lose -p (print file names) option; this can be implemented directly
in the hook being debugged.

15 years agoUpdate documentation for recent changes.
epg [Wed, 7 Sep 2005 05:28:42 +0000 (05:28 +0000)]
Update documentation for recent changes.

15 years ago($SCAN_P_FOLDER, $SCAN_P_MESSAGE, $SCAN_P_FROM): New configurable
epg [Tue, 6 Sep 2005 19:16:49 +0000 (19:16 +0000)]
($SCAN_P_FOLDER, $SCAN_P_MESSAGE, $SCAN_P_FROM): New configurable
globals, the proportion each field should take in the scan lines.

(filter_mail): Use these new globals instead of instead of hard-coded
defaults, and move the loading of .minc before the use of these
globals so the user can change them.

15 years ago(update_folders): Keep inbox at the top of the list.
epg [Tue, 6 Sep 2005 16:51:00 +0000 (16:51 +0000)]
(update_folders): Keep inbox at the top of the list.

15 years ago(filter_mail): Build and return a hash of all folders to which we add
epg [Tue, 6 Sep 2005 16:39:45 +0000 (16:39 +0000)]
(filter_mail): Build and return a hash of all folders to which we add
new messages.

(update_folders): New function to write out a new .folders file, so
any new folders added in this run are visible to lukem's new(1).

(MAIN): Call update_folders with the hash returned by filter_mail.

15 years ago(filter_mail): Don't move @_ to @msglist, just use @_.
epg [Tue, 6 Sep 2005 16:20:56 +0000 (16:20 +0000)]
(filter_mail): Don't move @_ to @msglist, just use @_.

15 years ago(filter_mail): Lose unused %FOLDERS variable.
epg [Tue, 6 Sep 2005 16:19:21 +0000 (16:19 +0000)]
(filter_mail): Lose unused %FOLDERS variable.

15 years ago(filter_mail): Need to print a \r before printing the status line,
epg [Mon, 5 Sep 2005 07:33:52 +0000 (07:33 +0000)]
(filter_mail): Need to print a \r before printing the status line,
as nothing is printed for spam messages, so these would just stack
up on the same line with two or more spams in a row.

15 years ago(filter_mail): Fix destruction of non-printable characters.
epg [Sun, 4 Sep 2005 17:46:16 +0000 (17:46 +0000)]
(filter_mail): Fix destruction of non-printable characters.

15 years ago(filter_mail): Better int() those field widths!
epg [Fri, 2 Sep 2005 23:10:14 +0000 (23:10 +0000)]
(filter_mail): Better int() those field widths!

15 years agoDOH! accidentally committed #! hack.
epg [Fri, 2 Sep 2005 22:58:14 +0000 (22:58 +0000)]
DOH! accidentally committed #! hack.

15 years ago(filter_mail): DOH! Sanitize subject, too.
epg [Fri, 2 Sep 2005 22:56:51 +0000 (22:56 +0000)]
(filter_mail): DOH!  Sanitize subject, too.

15 years ago(filter_mail): Stop popping items from header lists and just read the
epg [Fri, 2 Sep 2005 22:51:13 +0000 (22:51 +0000)]
(filter_mail): Stop popping items from header lists and just read the
last header value.  Also get rid of control characters in the subject
(stupid spam!).

15 years agoXXX the stupid pop() in filter_mail
epg [Fri, 2 Sep 2005 22:45:28 +0000 (22:45 +0000)]
XXX the stupid pop() in filter_mail

15 years agoMove the declaration of the hooks lists near the @FILTERS declaration.
epg [Fri, 2 Sep 2005 22:44:51 +0000 (22:44 +0000)]
Move the declaration of the hooks lists near the @FILTERS declaration.

15 years agoOoops, was still using .mincfilter for -d.
epg [Fri, 2 Sep 2005 22:44:27 +0000 (22:44 +0000)]
Ooops, was still using .mincfilter for -d.

15 years agoPull in COLUMNS environment variable and default it to 80.
epg [Fri, 2 Sep 2005 22:36:10 +0000 (22:36 +0000)]
Pull in COLUMNS environment variable and default it to 80.

(filter_mail): Instead of printing which folders have been added to,
print one line per saved non-spam message: its folder, message number,
and from and subject headers.  Use COLUMNS and hard-coded proportions
to determine how much of the line to allocate to each field printed.

15 years ago(find_mh_folder): Take %headers as arguments, don't call get_headers
epg [Fri, 2 Sep 2005 22:25:12 +0000 (22:25 +0000)]
(find_mh_folder): Take %headers as arguments, don't call get_headers
or log_headers here.

(filter_mail): .mincfilters, mincspam, and .minchooks are now just one
file, .minc.  Now we don't magically know the name of some
spam_start_hook, spam_stop_hook, spam_check, and post_store_hook, but
instead run all the hooks in the @start_hooks, @stop_hooks,
@filter_hooks, and @post_store_hooks lists.  Call get_headers and
log_headers here so we can pass them to the hooks.

15 years agoUse /usr/bin/env trampoline to run perl.
epg [Fri, 10 Dec 2004 17:34:58 +0000 (17:34 +0000)]
Use /usr/bin/env trampoline to run perl.

16 years ago(filter_mail): Support a post_store_hook, in case someone wants to do
epg [Thu, 25 Nov 2004 05:09:31 +0000 (05:09 +0000)]
(filter_mail): Support a post_store_hook, in case someone wants to do
post-processing for a message.  This is getting out of hand; all these
hooks should be folded into a single .mincrc or something...

16 years ago(get_headers): Be liberal in what you receive...
epg [Thu, 25 Nov 2004 04:35:26 +0000 (04:35 +0000)]
(get_headers): Be liberal in what you receive...

16 years ago(filter_mail): Now that the formatting isn't spitting too many spaces,
epg [Tue, 15 Jun 2004 18:20:13 +0000 (18:20 +0000)]
(filter_mail): Now that the formatting isn't spitting too many spaces,
prefix status lines with a single space.

16 years ago(filter_mail): Use $len to format the string rather than hard-coding 6
epg [Tue, 15 Jun 2004 17:48:47 +0000 (17:48 +0000)]
(filter_mail): Use $len to format the string rather than hard-coding 6
spaces for the numbers.

16 years ago(filter_mail): s/$msglen/$len/ (better, shorter name)
epg [Tue, 15 Jun 2004 17:29:01 +0000 (17:29 +0000)]
(filter_mail): s/$msglen/$len/ (better, shorter name)

16 years ago(store_message): Kill useless quotes.
epg [Thu, 10 Jun 2004 03:13:42 +0000 (03:13 +0000)]
(store_message): Kill useless quotes.

16 years agoMore evil optimization. Don't load .mincfilter until it's needed, and
epg [Fri, 4 Jun 2004 18:34:51 +0000 (18:34 +0000)]
More evil optimization.  Don't load .mincfilter until it's needed, and
while i'm here, allow incorporating mail if .mincfilter doesn't exist.

16 years ago(filter_mail): Don't prefix folder names with '+' in output.
epg [Tue, 25 May 2004 18:34:28 +0000 (18:34 +0000)]
(filter_mail): Don't prefix folder names with '+' in output.

16 years ago(getfiles): Wow, i sure missed a lot of places where counts need to
epg [Mon, 26 Apr 2004 16:26:28 +0000 (16:26 +0000)]
(getfiles): Wow, i sure missed a lot of places where counts need to
be adjusted.  Fix the early exit test.

16 years ago(getfiles): Need to reduce count by two here as well.
epg [Mon, 26 Apr 2004 16:25:05 +0000 (16:25 +0000)]
(getfiles): Need to reduce count by two here as well.

16 years ago(filter_mail): Reduce $msgcount by two now that filter_mail receives a
epg [Mon, 26 Apr 2004 16:23:30 +0000 (16:23 +0000)]
(filter_mail): Reduce $msgcount by two now that filter_mail receives a
list that contains '.' and '..'.

16 years ago(getfiles): Just return readdir results, don't strip . and .. and
epg [Mon, 26 Apr 2004 16:19:58 +0000 (16:19 +0000)]
(getfiles): Just return readdir results, don't strip . and .. and
don't return absolute paths.  We walk the file list enough times
already, there's no need to walk it for this.

(filter_mail): Skip . and .. in the @msglist.

(MAIN): Instead of passing getfiles $MAILDIR/new, chdir there and pass '.'.

16 years ago(MAIN): Drop unnecessary variable @msglist.
epg [Sun, 25 Apr 2004 22:46:14 +0000 (22:46 +0000)]
(MAIN): Drop unnecessary variable @msglist.

16 years ago(get_headers): Check errors on open.
epg [Sun, 25 Apr 2004 22:30:15 +0000 (22:30 +0000)]
(get_headers): Check errors on open.

16 years ago(get_highest_msgnum): Don't leave this readdir call rantless.
epg [Sun, 25 Apr 2004 22:06:19 +0000 (22:06 +0000)]
(get_highest_msgnum): Don't leave this readdir call rantless.

16 years agoImprove 'die' usage and leave an XXX comment in store_message about
epg [Sun, 25 Apr 2004 22:02:47 +0000 (22:02 +0000)]
Improve 'die' usage and leave an XXX comment in store_message about
same.

16 years ago(mkfolder): Simplify.
epg [Sun, 25 Apr 2004 21:55:32 +0000 (21:55 +0000)]
(mkfolder): Simplify.

16 years agoDon't use 'scalar' function on lists that are already evaluated in
epg [Sun, 25 Apr 2004 21:19:26 +0000 (21:19 +0000)]
Don't use 'scalar' function on lists that are already evaluated in
scalar context.

16 years agoFix L<> syntax (not sure why i had it this funky way that didn't work).
epg [Thu, 15 Apr 2004 17:41:07 +0000 (17:41 +0000)]
Fix L<> syntax (not sure why i had it this funky way that didn't work).

16 years ago(filter_mail): Resurrect -p functionality, which was lost in r1617.
epg [Wed, 14 Apr 2004 18:24:42 +0000 (18:24 +0000)]
(filter_mail): Resurrect -p functionality, which was lost in r1617.

16 years agosmall doc fixes
epg [Wed, 14 Apr 2004 18:17:19 +0000 (18:17 +0000)]
small doc fixes

16 years agoSwitch from Getopt::Std to Getopt::Long and Pod::Usage. This is much
epg [Wed, 14 Apr 2004 18:16:22 +0000 (18:16 +0000)]
Switch from Getopt::Std to Getopt::Long and Pod::Usage.  This is much
better even though we don't use long options.

16 years agoImprove NAME and SYNOPSIS pod.
epg [Wed, 14 Apr 2004 18:05:57 +0000 (18:05 +0000)]
Improve NAME and SYNOPSIS pod.

16 years ago(AUTHORS): Update.
epg [Sun, 11 Apr 2004 21:31:08 +0000 (21:31 +0000)]
(AUTHORS): Update.

16 years agoUpdate svn:executable to modern Subversion convention.
epg [Sun, 11 Apr 2004 21:25:46 +0000 (21:25 +0000)]
Update svn:executable to modern Subversion convention.

16 years agoHere you go.
epg [Sun, 11 Apr 2004 21:25:23 +0000 (21:25 +0000)]
Here you go.

16 years agoThis has no information not already in the POD, and minc is now ready
epg [Sun, 11 Apr 2004 21:19:58 +0000 (21:19 +0000)]
This has no information not already in the POD, and minc is now ready
to run out of the box.  Bye bye README.

16 years agoDrop Log::Dispatch (finally) and simplify logging.
epg [Sun, 11 Apr 2004 21:16:49 +0000 (21:16 +0000)]
Drop Log::Dispatch (finally) and simplify logging.

Kill global constants LOG_DEBUGLEVEL, SCREEN_DEBUGLEVEL, DEBUGCHAR,
INFOCHAR, INCOMINGCHAR, SAVECHAR, WARNCHAR, ERRORCHAR.

Kill global $logger and functions logsave, loginfo, logdebug, logwarn,
logerr.

(mylog): Kill first two parameters; all @_ are now catenated for the
log message.  Simply open $logfile and write the timestamp and
message, no more.

(logheader): Renamed from logincoming.  Adapt to new mylog.

(log_headers): s/logincoming/logheader/

(store_message): Call mylog instead of logsave.

16 years agoTwo optimizations:
epg [Sat, 10 Apr 2004 04:00:17 +0000 (04:00 +0000)]
Two optimizations:

Don't load .mincspam until it is actually needed, in filter_mail.

Print the first status message (the number of messages to process)
as soon as we can, in getfiles.

16 years agoFile::Basename hasn't been used since we stopped using `mhpath new`.
epg [Sat, 10 Apr 2004 03:51:53 +0000 (03:51 +0000)]
File::Basename hasn't been used since we stopped using `mhpath new`.

16 years ago(filter_mail): Only calculate $msgcount len once.
epg [Sat, 3 Apr 2004 23:36:19 +0000 (23:36 +0000)]
(filter_mail): Only calculate $msgcount len once.

16 years agoKilled the sysexits stuff a while back.
epg [Sat, 3 Apr 2004 06:56:49 +0000 (06:56 +0000)]
Killed the sysexits stuff a while back.

16 years agoDon't break when -m is not specified.
epg [Sat, 3 Apr 2004 06:37:39 +0000 (06:37 +0000)]
Don't break when -m is not specified.

16 years agowhitespace police
epg [Sat, 3 Apr 2004 06:35:35 +0000 (06:35 +0000)]
whitespace police

16 years agoAdd new -m option to stop processing after a certain number of messages.
epg [Sat, 3 Apr 2004 06:30:55 +0000 (06:30 +0000)]
Add new -m option to stop processing after a certain number of messages.

16 years agoSwitch to %opts style getopts.
epg [Sat, 3 Apr 2004 06:22:45 +0000 (06:22 +0000)]
Switch to %opts style getopts.

16 years agoNote licensing terms (same as Perl itself).
epg [Sat, 3 Apr 2004 06:04:11 +0000 (06:04 +0000)]
Note licensing terms (same as Perl itself).

16 years agoWhoops, SYNOPSIS was out of sync again.
epg [Sat, 3 Apr 2004 06:03:32 +0000 (06:03 +0000)]
Whoops, SYNOPSIS was out of sync again.

16 years agoDrop -h and use Getopt::Std automatic --help. New $VERSION global.
epg [Sat, 3 Apr 2004 06:03:07 +0000 (06:03 +0000)]
Drop -h and use Getopt::Std automatic --help.  New $VERSION global.

16 years agoMove STDOUT auto-flushing to filter_mail where it belongs.
epg [Sat, 3 Apr 2004 05:45:43 +0000 (05:45 +0000)]
Move STDOUT auto-flushing to filter_mail where it belongs.

16 years agoWhoops, remove -f and -s options from getopts call.
epg [Sat, 3 Apr 2004 05:35:49 +0000 (05:35 +0000)]
Whoops, remove -f and -s options from getopts call.