You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by qu...@apache.org on 2005/04/03 00:34:48 UTC
svn commit: r159837 -
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm
Author: quinlan
Date: Sat Apr 2 14:34:47 2005
New Revision: 159837
URL: http://svn.apache.org/viewcvs?view=rev&rev=159837
Log:
fix skipping for multiple-charset models
some performance tuning
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm?view=diff&r1=159836&r2=159837
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/TextCat.pm Sat Apr 2 14:34:47 2005
@@ -307,7 +307,7 @@
# values are 1.05 or 1.1.
sub classify {
- my ($inputptr, $languages_filename, @skip) = @_;
+ my ($inputptr, $languages_filename, %skip) = @_;
my %results;
my $maxp = $opt_t;
@@ -350,7 +350,9 @@
# test each language
foreach my $ngram (@nm) {
my $language = $ngram->{"language"};
- next if grep { $_ eq $language } @skip;
+ my $short = $language;
+ $short =~ s/\..*//;
+ next if defined $skip{$short};
my $i = 0;
my $p = 0;
@@ -440,11 +442,10 @@
if ($len >= 256) {
# generate list of languages to skip
my %skip;
- $skip{$_}++ for split(' ', $opts->{conf}->{inactive_languages});
- $skip{$_}-- for split(' ', $opts->{conf}->{ok_languages});
- my @skip = grep { $skip{$_} == 1 } keys %skip;
- dbg("textcat: classifying, skipping: " . join(" ", @skip));
- @matches = classify(\$body, $self->{main}->{languages_filename}, @skip);
+ $skip{$_} = 1 for split(' ', $opts->{conf}->{inactive_languages});
+ delete $skip{$_} for split(' ', $opts->{conf}->{ok_languages});
+ dbg("textcat: classifying, skipping: " . join(" ", keys %skip));
+ @matches = classify(\$body, $self->{main}->{languages_filename}, %skip);
}
else {
dbg("textcat: message too short for language analysis");
@@ -515,7 +516,7 @@
}
foreach my $line (@$body) {
- return 1 if $line =~ /[\x80-\xff]{8,}/;
+ return 1 if $line =~ /[\x80-\xff]{8}/;
}
return 0;
}