X-Git-Url: https://diplodocus.org/git/minc/blobdiff_plain/3467d80bc8ae522f1a7279201a0d59bf631376ab..a6576dcb1aa76b7d17f7711ad51580b4c7b60d2f:/minc diff --git a/minc b/minc index d1cea45..05a3b63 100755 --- a/minc +++ b/minc @@ -181,7 +181,6 @@ marked unseen. =cut our @FILTERS; -require "$HOME/.mincfilter"; my $mh; my $logfile; @@ -276,12 +275,12 @@ sub getfiles { die("readdir($dir): $!"); } - if (@result == 0) { + if (@result <= 2) { exit(0); } STDOUT->autoflush(1); - print(scalar(@result), " messages..."); + print(@result - 2, " messages..."); closedir(DIR); @@ -362,7 +361,7 @@ sub store_message { # 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; @@ -532,7 +531,7 @@ sub find_mh_folder { 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; @@ -548,6 +547,10 @@ sub filter_mail { eval "sub spam_check { return 0; }"; } + if (-f "$HOME/.mincfilter") { + require "$HOME/.mincfilter"; + } + @baton = spam_start_hook(); foreach $msg (@msglist) { @@ -569,12 +572,12 @@ sub filter_mail { 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); @@ -589,6 +592,7 @@ MAIN: { my $st; if ($dumpfilters) { + require "$HOME/.mincfilter"; $Data::Dumper::Indent = 1; print(Dumper(\@FILTERS)); exit;