]> git.deb.at Git - pkg/t-prot.git/blobdiff - t-prot
Imported Upstream version 2.10
[pkg/t-prot.git] / t-prot
diff --git a/t-prot b/t-prot
index dca0ac338b7c90cd0e9becba192571297f3d2693..e2b36cff8acaa8b236ddc84531a46a835117e7de 100755 (executable)
--- a/t-prot
+++ b/t-prot
@@ -1,13 +1,13 @@
 #!/usr/bin/perl -w
-# $Id: t-prot,v 1.255 2007/09/19 11:32:58 jochen Exp $
+# $Id: t-prot,v 1.267 2009/12/30 21:34:16 jochen Exp $
 
 require 5.006;
 use strict;
 use Fcntl qw(O_EXCL O_WRONLY O_CREAT);
 use Getopt::Mixed qw(nextOption);
-use constant VER            => '2.5';
+use constant VER            => '2.10';
 use constant REV            => '';
-use constant REL            => q$Revision: 1.255 $=~m/(\d+(?:\.\d+)+)/;
+use constant REL            => q$Revision: 1.267 $=~m/(\d+(?:\.\d+)+)/;
 # MTA expecting mail on STDIN
 # (you might have to adjust this if using a different MTA)
 use constant SENDMAIL       => '/usr/sbin/sendmail -oi';
@@ -108,7 +108,7 @@ sub help {
   --kminl=n       min. line length for wrapped line; requires -k
   --kmaxl=n       max. line length for wrapped line; requires -k
   --kdiff=n       max. length difference between wrapped lines; req. -k
-  -L=DIRECTORY    mailling list footer directory, treat mailing list
+  -L=DIRECTORY    mailing list footer directory, treat mailing list
                   footers as signature
   -l              delete mailing list footer; requires -L
   --lax-security  use unsafe writing method; USE ON YOUR OWN RISK!
@@ -178,12 +178,12 @@ sub remove_footers {
             for (my $z=0; $z<=$#l; $z++) { chomp($l[$z]); }
 
             if (defined $V) {
-                WIPE: for (my $z=scalar(@$L)-scalar(@l); $z>=0; $z--)
-                {
+                WIPE: for (my $z=scalar(@$L)-scalar(@l); $z>=0; $z--) {
                     if (scalar(@l)+$z<=scalar(@$L)) {
                         my $y = 0;
                         for(my $x=1; $x<=scalar(@l); $x++) {
-                            if (index($$L[scalar(@$L)-$x-$z], $l[scalar(@l)-$x])!=0) {
+                            if (index($$L[scalar(@$L)-$x-$z],
+                                          $l[scalar(@l)-$x])!=0) {
                                 $y = 1;
                             }
                         }
@@ -255,11 +255,12 @@ sub decomb {
             (index($$L[$x+1], $indent)!=0) &&
             ($$L[$x+1] !~ /^$/) &&
             ($$L[$x+1] !~ /^[\s^]/) &&
-            ($$L[$x] !~ /-$/) &&
+            ($$L[$x]   !~ /-$/) &&
             ($$L[$x+1] !~ /^\Q[...]\E\s*$/) &&
             ($mua ne 'mutt' || $$L[$x+1] !~ /^(?:\e[^\a]+\a)?\[-- /) &&
             (length($$L[$x])+index($$L[$x+1], ' ')>$max ||
-                (index($$L[$x+1], ' ')<0 && length($$L[$x])+length($$L[$x+1])>$max)) &&
+                (index($$L[$x+1], ' ')<0 &&
+                 length($$L[$x])+length($$L[$x+1])>$max)) &&
             (length($$L[$x])+length($$L[$x+1])<$kmaxl) &&
             (length($$L[$x])+length($$L[$x+1])>$kminl) &&
             (length($$L[$x])-length($$L[$x+1])>$kdiff) &&
@@ -441,23 +442,13 @@ sub process_msg {
     my (@ads, @hdr, @bo1, @bo2, @ftr, @sig, @vrb, @att) = 
         ((), (), (), (), (), (), (), (), ());
 
-    # First, remove and store lines we might need later...
+    # Remove and store lines we might need later...
     # Remove headers:
     if (!$nohdr) {
         for ($x=0; $x<$#$lines; $x++) { if (@$lines[$x] =~ /^$/) { last; }; }
-
-        # check body length and stop processing silently if msg is too long:
-        if ((defined $maxlines) && (@$lines-$x > $maxlines)) {
-            return;
-        }
-
         @hdr = @$lines[0..$x];
         splice(@$lines, 0, $x+1);
     }
-    elsif ((defined $maxlines) && (@$lines > $maxlines)) {
-        # check body length and stop processing silently if msg is too long:
-        return;
-    }
     # remember the original body lines count
     my $linecount = scalar(@$lines);
 
@@ -702,6 +693,7 @@ sub process_msg {
         my @tofu = ('Original Message',
                     'Original-Nachricht',
                     'Ursprüngliche Nachricht',
+                    'Ursprüngliche Nachricht',
                     'Ursprungliche Nachricht',
                     'Mensagem original',
                     'Ursprungligt meddelande',
@@ -715,7 +707,7 @@ sub process_msg {
         DONE: for ($x=0; $x<scalar(@$lines); $x++) { 
             if (!$vrb[$x]) {
                 foreach my $tmp (@tofu) {
-                    if (($ms && $$lines[$x] =~ /^-+\s?$tmp\s?-+/) ||
+                    if (($ms && $$lines[$x] =~ /^\s?-+\s?$tmp\s?-+/) ||
                         ($gw &&
                             ($$lines[$x] =~ /^>>>[^\<]+<[^\>]+> \d\d?\/\d\d?\/\d\d? \d\d?:\d\d [AP]M >>>/ ||
                              $$lines[$x] =~ /^>>> On [A-Z][a-z][a-z]?, [A-Z][a-z][a-z]? \d\d?, \d\d\d\d at [ \d]\d:\d\d [AP]M, in message/))) { 
@@ -1074,6 +1066,14 @@ if (!open(IN, $ifile))
 my @message = <IN>;
 close IN;
 
+# First, check msg length and stop processing if msg is too long:
+if ((defined $maxlines) && (@message > $maxlines)) {
+    if ($ofile ne 'NONE') {
+        write_msg(($mda?'|'.SENDMAIL." $mda":">$ofile"), \@message);
+    }
+    exit(EX_DATAERR);
+}
+
 # this should be self-explanatory:
 process_msg(\@message);