Mailing List Archive

svn commit: r202453 - /spamassassin/trunk/masses/rule-dev/maildir-scan-headers
Author: jm
Date: Wed Jun 29 16:53:36 2005
New Revision: 202453

URL: http://svn.apache.org/viewcvs?rev=202453&view=rev
Log:
trivial checkin: rule-development helper script

Modified:
spamassassin/trunk/masses/rule-dev/maildir-scan-headers

Modified: spamassassin/trunk/masses/rule-dev/maildir-scan-headers
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/masses/rule-dev/maildir-scan-headers?rev=202453&r1=202452&r2=202453&view=diff
==============================================================================
--- spamassassin/trunk/masses/rule-dev/maildir-scan-headers (original)
+++ spamassassin/trunk/masses/rule-dev/maildir-scan-headers Wed Jun 29 16:53:36 2005
@@ -5,11 +5,13 @@

sub usage {
die "usage: maildir-scan-headers [-h headers] [--headers headers]
- [-i] [-raw] [-sort] fileordir1 fileordir2 ... \n";
+ [-re regexp] [-i] [-raw] [-sort] fileordir1 fileordir2 ... \n";

}

+my $expect_attachment = 0;
my $wanted = '';
+my $regexp = '';
my $sort = 0;
my $casei = 0;
my $raw = 0;
@@ -18,6 +20,7 @@
use Getopt::Long qw(:config no_ignore_case);
GetOptions(
"headers|h=s" => \$wanted,
+ "re=s" => \$regexp,
"casei|i" => \$casei,
"raw" => \$raw,
"sort" => \$sort,
@@ -26,7 +29,9 @@
);

$wanted =~ s/[ ,\|;:]+/\|/gs;
-if ($casei) {
+if ($regexp) {
+ $wanted = qr{${regexp}};
+} elsif ($casei) {
$wanted = qr{(?:$wanted)}i;
} else {
$wanted = qr{(?:$wanted)};
@@ -54,7 +59,7 @@
{
if (/^$/) { last; }

- if (!$raw && /X-Spam-Flag: YES/) {
+ if ($expect_attachment && !$raw && /X-Spam-Flag: YES/) {
while (<IN>) {
/^Content-Description: original message before SpamAssassin/ and last;
}
@@ -65,12 +70,15 @@

$hdrs .= $_;
}
+
close IN;

- $hdrs =~ s/(\n[ \t]+)/\\n /gs; # folding
+
+ $hdrs =~ s/\n([ \t])/\\n$1/gs; # folding
+ $hdrs =~ s/\t/\\t/gs; # tabs
$hdrs =~ s/\|/[pipe]/gs; # pipe chars

- my @ok = ($hdrs =~ /^(${wanted}:(?: .*)?)$/gom);
+ my @ok = ($hdrs =~ /^(${wanted}:.*)$/gom);
if ($sort) { @ok = sort @ok; }
$hdrs = join ("|", @ok);