]> git.deb.at Git - pkg/t-prot.git/commitdiff
Imported Upstream version 2.4 upstream/2.4
authorGerfried Fuchs <rhonda@debian.at>
Wed, 17 Feb 2010 19:51:41 +0000 (20:51 +0100)
committerGerfried Fuchs <rhonda@debian.at>
Wed, 17 Feb 2010 19:51:41 +0000 (20:51 +0100)
ChangeLog
TODO
t-prot
t-prot.1

index b3dc7e9f436c87763dee8ff144a727f390f556a4..e1d26deef0834363ab9e858a9cc580c7cb1b4a41 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2007-03-09 15:06  Jochen Striepe
+
+       * t-prot: Release as v2.4.
+
+2007-03-09 15:05  Jochen Striepe
+
+       * t-prot, t-prot.1: Add feature to skip processing very large
+       messages. Many thanks to Gerfried Fuchs and Scorpi for testing and
+       suggesting.
+
+2007-03-09 14:33  Jochen Striepe
+
+       * t-prot: Fix formatting for better reading.
+
 2006-12-19 13:13  Jochen Striepe
 
        * t-prot: Release as v2.3.
diff --git a/TODO b/TODO
index b5575d5710c3553ca327c865a37eb932eb761be3..95a4a4313a6e81dffe3f7f4bdf3e412f294eb044 100644 (file)
--- a/TODO
+++ b/TODO
@@ -57,7 +57,7 @@ article currently displayed (just on those processed later on). It would
 be nice to have an alternative taking effect immediately.
 
 
-Please remember that t-prot.sl is an *example* script (for you to get
+Please keep in mind that t-prot.sl is an *example* script (for you to get
 an idea on how to integrate t-prot into other software), so these are
 really low priority. However, patches in unified diff format are always
 welcome.
diff --git a/t-prot b/t-prot
index 20f3119f5b4e607e4af69bb62321b66258aaac26..5141512af69382c96f70b10560b16ed89b34ce51 100755 (executable)
--- a/t-prot
+++ b/t-prot
@@ -1,13 +1,13 @@
 #!/usr/bin/perl -w
-# $Id: t-prot,v 1.250 2006/12/19 13:13:57 jochen Exp $
+# $Id: t-prot,v 1.253 2007/03/09 15:06:04 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.3';
+use constant VER            => '2.4';
 use constant REV            => '';
-use constant REL            => q$Revision: 1.250 $=~m/(\d+(?:\.\d+)+)/;
+use constant REL            => q$Revision: 1.253 $=~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';
@@ -23,9 +23,9 @@ use constant EX_BOUNCE      => EX_UNAVAILABLE;
 use vars qw(
     $ad $ads $bigqn $bigqx $boun $check $check_ratio $cr $diff $elli
     $footers $ftr_ad $ftr_ml $hdrs $indent $kamm $kdiff $kminl $kmaxl
-    $lax $lsig $maxsig $mda $ml $ms $ms_smart $msg_quote $msg_ratio
-    $mua $nohdr $ofile $pgpshort $pgpmove $pgpmovevrf $sig $sigint
-    $sign $spass $spass_prefix $sysl $trad $trsp
+    $lax $lsig $maxsig $maxlines $mda $ml $ms $ms_smart $msg_quote
+    $msg_ratio $mua $nohdr $ofile $pgpshort $pgpmove $pgpmovevrf $sig
+    $sigint $sign $spass $spass_prefix $sysl $trad $trsp
 
     $gpg_WARNING $gpg_Warning $gpg_Cantcheck $gpg_aka $gpg_bad
     $gpg_expired $gpg_good $gpg_bug
@@ -40,6 +40,7 @@ use vars qw(
 # command line can change them or they are used in rexexp's):
 $0 =~ s!^.*/!!;
 $maxsig         = 4;      # max. valid signature length
+$maxlines       = undef;  # no limit of message lines
 $indent         = '>';    # Indent string, regexp to identify a quoted line
 $kminl          = 65;     # see decomb() for details
 $kmaxl          = 80;
@@ -113,6 +114,7 @@ sub help {
   --locale=LOCALE internationalization; currently only used with -Mmutt
   -M, --mua=MUA   turn on special treatment for some mail user agents
   -m              delete MS style TOFU; careful: might be too agressive
+  --max-lines=x   maximum number of message lines
   --ms-smart      try to be smart with MS style TOFU; req. -Mmutt and -m
   -o=OUTFILE      file to be written to; '-' for STDOUT (default), 'NONE'
                   for no output at all
@@ -160,12 +162,14 @@ sub remove_footers {
     }
 
     if ($F && scalar(@$L)) {
-        if (!opendir(DIR, $F)) { print STDERR "Could not open $F: $!\n"; exit(EX_IOERR); }
+        if (!opendir(DIR, $F))
+            { print STDERR "Could not open $F: $!\n"; exit(EX_IOERR); }
         my @feet = grep { /^[^.]/ && -f "$F/$_" } readdir DIR;
         closedir DIR;
 
         foreach my $f (@feet) {
-            if (!open(IN, "$F/$f")) { print STDERR "Could not open $F/$f: $!\n"; exit(EX_IOERR); }
+            if (!open(IN, "$F/$f"))
+                { print STDERR "Could not open $F/$f: $!\n"; exit(EX_IOERR); }
             my @l = <IN>;
             close IN;
 
@@ -343,7 +347,8 @@ sub pgp {
                 if (index($$H[$m], 'From:')==0) {
                     $from = $$H[$m];
                     $m++;
-                    while (exists($$H[$m]) && $$H[$m] =~ /^\s/) { $from .= $$H[$m]; $m++; }
+                    while (exists($$H[$m]) && $$H[$m] =~ /^\s/)
+                        { $from .= $$H[$m]; $m++; }
                     last;
                 }
             }
@@ -439,9 +444,19 @@ sub process_msg {
     # 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);
 
@@ -894,7 +909,8 @@ sub process_msg {
 
 
 # environment
-my $locale = $ENV{'LC_ALL'}?$ENV{'LC_ALL'}:($ENV{'LC_MESSAGES'}?$ENV{'LC_MESSAGES'}:$ENV{'LANG'});
+my $locale = $ENV{'LC_ALL'}?$ENV{'LC_ALL'}:
+                 ($ENV{'LC_MESSAGES'}?$ENV{'LC_MESSAGES'}:$ENV{'LANG'});
 
 # command line switches
 ($ad, $ads, $bigqn, $bigqx, $check, $cr, $sysl, $diff, $elli, $footers, $lax,
@@ -906,8 +922,8 @@ my $ifile   = '-';    # use STDIN if nothing specified
 # get command line params:
 Getopt::Mixed::init('a A=s c d e h i=s k L=s l m M=s o=s P=s p:s r S:i'.
     ' s t v w bigq:s body check:s debug>d diff ftr-ad ftr-ml help>h'.
-    ' kminl=i kmaxl=i kdiff=i lax-security locale=s ms-smart mua>M'.
-    ' pgp-short pgp-move pgp-move-vrf sigsmax:i spass version>v');
+    ' kminl=i kmaxl=i kdiff=i lax-security locale=s max-lines=i ms-smart'.
+    ' mua>M pgp-short pgp-move pgp-move-vrf sigsmax:i spass version>v');
 while (my ($opt, $val, $pretty) = nextOption()) {
     if    ($opt eq 'a')     { $ad = 1; }
     elsif ($opt eq 'A')     { $ads = $val; }
@@ -944,6 +960,7 @@ while (my ($opt, $val, $pretty) = nextOption()) {
     elsif ($opt eq 'lax-security') { $lax = 1; }
     elsif ($opt eq 'locale') { $locale = $val; }
     elsif ($opt eq 'm')     { $ms = 1; }
+    elsif ($opt eq 'max-lines') { $maxlines = $val; }
     elsif ($opt eq 'ms-smart') { $ms_smart = 1; $ms = 1; }
     elsif ($opt eq 'M') {
         $mua = lc($val);
@@ -1046,7 +1063,8 @@ else {
 
 
 # Read message:
-if (!open(IN, $ifile)) { print STDERR "Could not open $ifile: $!\n"; exit(EX_IOERR); }
+if (!open(IN, $ifile))
+    { print STDERR "Could not open $ifile: $!\n"; exit(EX_IOERR); }
 my @message = <IN>;
 close IN;
 
index 5133f904521384f2c95347f57c63f930918382b2..6f776d53fdec2ae9a3209bb587e5945aadfb7851 100644 (file)
--- a/t-prot.1
+++ b/t-prot.1
@@ -1,4 +1,4 @@
-.\" $Id: t-prot.1,v 1.128 2006/12/19 12:30:47 jochen Exp $
+.\" $Id: t-prot.1,v 1.129 2007/03/09 15:05:35 jochen Exp $
 .\"
 .TH T-PROT "1" "December 2006" "T-PROT"
 .SH NAME
@@ -269,6 +269,15 @@ and
 .B gnupg
 versions.
 .TP
+.BR "\-M, \-\-mua" =MUA
+"mail user agent":
+Turn on special treatment for some mail user agents. (Right now only 
+.BR mutt (1)
+is supported, but more might be added in future.)
+.IR Caveat :
+If your MUA is supported by this feature you must ensure t-prot makes
+use of it when called from within your MUA to work as desired.
+.TP
 .B "\-m"
 "Microsoft TOFU":
 Hides TOFU as given by some Microsoft mailers. (You all surely know these
@@ -292,14 +301,9 @@ Requires
 .BR "\-Mmutt" " and"
 .BR "\-m" .
 .TP
-.BR "\-M, \-\-mua" =MUA
-"mail user agent":
-Turn on special treatment for some mail user agents. (Right now only 
-.BR mutt (1)
-is supported, but more might be added in future.)
-.IR Caveat :
-If your MUA is supported by this feature you must ensure t-prot makes
-use of it when called from within your MUA to work as desired.
+.BR "\-\-max\-lines" =x
+Maximum number of lines a message body may count. If the body is longer
+than x lines, the message will not be processed but printed unmodified.
 .TP
 .BR "\-o" =FILE
 "output file":