=cut
our @FILTERS;
-require "$HOME/.mincfilter";
my $mh;
my $logfile;
die("readdir($dir): $!");
}
- if (@result == 0) {
+ if (@result <= 2) {
exit(0);
}
STDOUT->autoflush(1);
- print(scalar(@result), " messages...");
+ print(@result - 2, " messages...");
closedir(DIR);
# file is left behind as opposed to a duplicate
# message. This is more easily detected by the user.
if ($run) {
- if (sysopen(MSG, "$mhmsg",
+ if (sysopen(MSG, $mhmsg,
O_WRONLY | O_EXCL | O_CREAT, 0600)) {
close(MSG);
last;
sub filter_mail {
my @msglist = @_;
my $msgcount = @msglist - 2; # don't count . and ..
- my $msgcountlen = length($msgcount);
+ my $len = length($msgcount);
my @baton;
my $msg;
my $mhfolder;
eval "sub spam_check { return 0; }";
}
+ if (-f "$HOME/.mincfilter") {
+ require "$HOME/.mincfilter";
+ }
+
@baton = spam_start_hook();
foreach $msg (@msglist) {
print("\r");
if (not $FOLDERS{$mhfolder}) {
- print(' ' x $msgcountlen);
- print(" \r+$mhfolder\n");
+ print(' ' x $len);
+ print(" \r$mhfolder\n");
$FOLDERS{$mhfolder} = 1;
}
- printf('%6d SPAM %6d saved %6d/%1d',
+ printf(" \%${len}d SPAM \%${len}d saved \%${len}d/%1d",
$spam, $saved, $spam + $saved, $msgcount);
defined($maxmsgs) and ($spam + $saved < $maxmsgs or last);
my $st;
if ($dumpfilters) {
+ require "$HOME/.mincfilter";
$Data::Dumper::Indent = 1;
print(Dumper(\@FILTERS));
exit;