]> git.deb.at Git - pkg/t-prot.git/commitdiff
Imported Upstream version 2.13.1 upstream/2.13.1
authorGerfried Fuchs <rhonda@debian.at>
Wed, 17 Feb 2010 19:59:52 +0000 (20:59 +0100)
committerGerfried Fuchs <rhonda@debian.at>
Wed, 17 Feb 2010 19:59:52 +0000 (20:59 +0100)
ChangeLog
contrib/muttrc.t-prot
contrib/t-prot-r1.271-gol.diff [deleted file]
contrib/t-prot-r1.276-gol.diff [new file with mode: 0644]
t-prot
t-prot.1

index 1fc6cf8771ec0400b5ebcd66691e3a09a0d6ba4b..53ff83e610978ca16ef2213eb573d5ee2437f616 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,52 @@
+2010-02-07 14:31  Jochen Striepe
+
+       * t-prot.1: RFC 5322 is offficial standard for the Internet Message
+       Format since October 2008, obsoleting RFC 2822.
+
+2010-02-06 03:29  Jochen Striepe
+
+       * t-prot: Adjust comment to modern t-prot times.
+
+2010-02-04 21:33  Jochen Striepe
+
+       * t-prot.1: Update contributers list.
+
+2010-02-03 17:58  Jochen Striepe
+
+       * t-prot.1: Update date string.
+
+2010-02-03 17:56  Jochen Striepe
+
+       * t-prot.1: Remove redundancies, improve some descriptions.
+
+2010-02-01 23:48  Jochen Striepe
+
+       * contrib/muttrc.t-prot: By now, --bigq is pretty much standard and
+       extremely well-tested, so we include it into default configuration.
+
+2010-02-01 22:34  Jochen Striepe
+
+       * t-prot: Revert thinko from r1.272.
+
+2010-02-01 22:27  Jochen Striepe
+
+       * t-prot: Fix syntax to match coding style.
+
+2010-01-31 22:07  Jochen Striepe
+
+       * t-prot: Release as v2.13.
+
+2010-01-29 13:03  Jochen Striepe
+
+       * t-prot: Fix long standig false positive for mutt<1.5.18 with
+       Microsoft TOFU inside a PGP signed message and no lines above the
+       full quote (indicating a forwarded message rather than a lazy full
+       quote).  Thanks to Gerfried Fuchs.
+
+2010-01-24 17:17  Jochen Striepe
+
+       * t-prot: Fix newline stripping for locales.
+
 2010-01-08 11:10  Jochen Striepe
 
        * t-prot: Release as v2.12.
index 0c5c9c2367f9863678d35cba9f19ab356cd0b1d6..97b8dfff6e046a3964cad6ebbef90d68fc02c02f 100644 (file)
@@ -1,17 +1,17 @@
-# $Id: muttrc.t-prot,v 1.9 2002/12/29 03:52:57 jochen Exp $
+# $Id: muttrc.t-prot,v 1.10 2010/02/01 23:48:06 jochen Exp $
 
 # This all works only if you have mutt-1.3.12 or newer
 # or if you use something like the pagerfilter patch
 # (http://www.escape.de/users/tolot/mutt/).
-set display_filter='t-prot -acelmtS -Mmutt --spass -L$HOME/.mutt/mlfooters -A$HOME/.mutt/adfooters'
+set display_filter='t-prot -acelmtS --bigq -Mmutt --spass -L$HOME/.mutt/mlfooters -A$HOME/.mutt/adfooters'
 
 # toggle TOFU protection with ESC-0 and ESC-1
 macro generic \e0 ":unset display_filter\n" "Turn TOFU protection off"
-macro generic \e1 ":set display_filter='t-prot -acelmtS -Mmutt --spass -L$HOME/.mutt/mlfooters -A$HOME/.mutt/adfooters'\n" "Turn TOFU protection on"
+macro generic \e1 ":set display_filter='t-prot -acelmtS --bigq -Mmutt --spass -L$HOME/.mutt/mlfooters -A$HOME/.mutt/adfooters'\n" "Turn TOFU protection on"
 
 # same in pager mode - ugly but what the hell...
 macro pager \e0 ":unset display_filter; exec exit\n:exec display-message\n" "Turn TOFU protection off"
-macro pager \e1 ":set display_filter='t-prot -acelmtS -Mmutt --spass -L$HOME/.mutt/mlfooters -A$HOME/.mutt/adfooters'; exec exit\n:exec display-message\n" "Turn TOFU protection on"
+macro pager \e1 ":set display_filter='t-prot -acelmtS --bigq -Mmutt --spass -L$HOME/.mutt/mlfooters -A$HOME/.mutt/adfooters'; exec exit\n:exec display-message\n" "Turn TOFU protection on"
 
 # highlight TOFU protection:
 color body     brightmagenta   black   "^\\[---.*"
diff --git a/contrib/t-prot-r1.271-gol.diff b/contrib/t-prot-r1.271-gol.diff
deleted file mode 100644 (file)
index 1896bd1..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
---- t-prot     2010-01-08 12:10:26.000000000 +0100
-+++ t-prot-gol 2010-01-08 12:14:18.000000000 +0100
-@@ -4,7 +4,7 @@
- require 5.006;
- use strict;
- use Fcntl qw(O_EXCL O_WRONLY O_CREAT);
--use Getopt::Mixed qw(nextOption);
-+use Getopt::Long qw(:config gnu_getopt no_ignore_case);
- use constant VER            => '2.12';
- use constant REV            => '';
- use constant REL            => q$Revision: 1.271 $=~m/(\d+(?:\.\d+)+)/;
-@@ -914,84 +914,83 @@
-     (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
- my $ifile   = '-';    # use STDIN if nothing specified
-+# temp vals:
-+my ($_t1, $_t2, $_t3, $_t4, $_t5, $_t6, $_t7, $_t8, $_t9, $_ta, $_tb) = undef;
-+
- # 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 groupwise'.
--    ' help>h 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; }
--    elsif ($opt eq 'bigq')  { 
--        if ($val !~ /^(?:(\d+)(?:,(\d+))?)?$/) { help(); }
--        $bigqn = $1?$1:30; 
--        $bigqx = $2?$2:10;
--        if ($bigqn<=0 || $bigqx<=0 || $bigqn<=$bigqx) { help(); }
--    }
--    elsif ($opt eq 'body')  { $nohdr = 1; $hdrs = 1; }
--    elsif ($opt eq 'c')     { $cr = 1; }
--    elsif ($opt eq 'check') {
--        $check = 1;
--        while ($val && $val =~ /^([^,\s]+)(?:,(\S+))?$/) {
--            my $foo = $1;
--            $val = $2;
--
--            if ($foo =~ /^ratio(?:=(0?\.\d+))?$/) {
--                $check_ratio = $1?$1:0.75;
--            }
--        }
--    }
--    elsif ($opt eq 'd')     { $sysl = 1; }
--    elsif ($opt eq 'diff')  { $diff = 1; }
--    elsif ($opt eq 'e')     { $elli = 1; }
--    elsif ($opt eq 'ftr-ad') { $ftr_ad = 1; $ad = 1; }
--    elsif ($opt eq 'ftr-ml') { $ftr_ml = 1; $ml = 1; }
--    elsif ($opt eq 'groupwise') { $gw = 1; }
--    elsif ($opt eq 'i')     { $ifile = $val; }
--    elsif ($opt eq 'k')     { $kamm = 1; }
--    elsif ($opt eq 'kminl') { $kminl = $val; $kamm = 1; }
--    elsif ($opt eq 'kmaxl') { $kmaxl = $val; $kamm = 1; }
--    elsif ($opt eq 'kdiff') { $kdiff = $val; $kamm = 1; }
--    elsif ($opt eq 'L')     { $footers = $val; }
--    elsif ($opt eq 'l')     { $ml = 1; }
--    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);
-+if (!Getopt::Long::GetOptions(
-+    'a'             => \$ad,
-+    'A=s'           => \$ads,
-+    'bigq:s'        => \$_t1,
-+    'c'             => \$cr,
-+    'check:s'       => \$_t9,
-+    'debug|d'       => \$sysl,
-+    'diff'          => \$diff,
-+    'e'             => \$elli,
-+    'ftr-ad'        => \$ftr_ad,
-+    'ftr-ml'        => \$ftr_ml,
-+    'groupwise'     => \$gw,
-+    'help|h'        => \$_t2,
-+    'i=s'           => \$ifile,
-+    'k'             => \$kamm,
-+    'kminl=i'       => \$_t3,
-+    'kmaxl=i'       => \$_t4,
-+    'kdiff=i'       => \$_t5,
-+    'L=s'           => \$footers,
-+    'l'             => \$ml,
-+    'lax-security'  => \$lax,
-+    'locale=s'      => \$locale,
-+    'max-lines=i'   => \$maxlines,
-+    'ms-smart'      => \$ms_smart,
-+    'mua|M=s'       => \$_t7,
-+    'm'             => \$ms,
-+    'o=s'           => \$ofile,
-+    'P=s'           => \$boun,
-+    'p:s'           => \$_t8,
-+    'pgp-short'     => \$pgpshort,
-+    'pgp-move'      => \$pgpmove,
-+    'pgp-move-vrf'  => \$pgpmovevrf,
-+    'r'             => \$hdrs,
-+    'S:i'           => \$_t6,
-+    's'             => \$sig,
-+    'sigsmax:i'     => \$_ta,
-+    'spass'         => \$spass,
-+    't'             => \$trad,
-+    'version|v'     => \$_tb,
-+    'w'             => \$trsp
-+    )) {
-+    help();
-+}
--        if ($mua eq 'mutt') {
--            # mutt still displays the message when ^C'ing pgp verification:
--            $SIG{'INT'} = 'sigint_handler';
--        }
-+# clean up temp vals:
-+if (defined $_t1) {
-+    if ($_t1 !~ /^(?:(\d+)(?:,(\d+))?)?$/) { help(); }
-+    $bigqn = $1?$1:30; 
-+    $bigqx = $2?$2:10; 
-+    if ($bigqn<=0 || $bigqx<=0 || $bigqn<=$bigqx) { help(); }
-+}
-+if (defined $_t2) { help(); }
-+if (defined $_t3) { $kminl = $_t3; $kamm = 1; }
-+if (defined $_t4) { $kmaxl = $_t4; $kamm = 1; }
-+if (defined $_t5) { $kdiff = $_t5; $kamm = 1; }
-+if (defined $_t6) { $lsig = $_t6 ? $_t6 : $maxsig; }
-+if (defined $_t7) {
-+    $mua = lc($_t7);
-+    # mutt still displays the message when ^C'ing pgp verification:
-+    if ($mua eq 'mutt') { $SIG{'INT'} = 'sigint_handler'; }
-+}
-+if (defined $_t8) { $mda = $_t8 ? $_t8 : '1'; }
-+if (defined $_t9) {
-+    $check = 1;
-+    while ($_t9 && $_t9 =~ /^([^,\s]+)(?:,(\S+))?$/) {
-+        my $foo = $1;
-+        $_t9 = $2;
-+        if ($foo =~ /^ratio(?:=(0?\.\d+))?$/) { $check_ratio = $1?$1:0.75; }
-     }
--    elsif ($opt eq 'o')     { $ofile = $val; }
--    elsif ($opt eq 'P')     { $boun = $val; }
--    elsif ($opt eq 'p')     { $mda = $val ? $val : '1'; }
--    elsif ($opt eq 'pgp-short') { $pgpshort = 1; }
--    elsif ($opt eq 'pgp-move') { $pgpmove = 1; }
--    elsif ($opt eq 'pgp-move-vrf') { $pgpmovevrf = 1; }
--    elsif ($opt eq 'r')     { $hdrs = 1; }
--    elsif ($opt eq 'S')     { $lsig = $val ? $val : $maxsig; }
--    elsif ($opt eq 's')     { $sig = 1; }
--    elsif ($opt eq 'sigsmax') { $sign = $val ? $val : undef; }
--    elsif ($opt eq 'spass') { $spass = 1; }
--    elsif ($opt eq 't')     { $trad = 1; }
--    elsif ($opt eq 'v')     { version(); }
--    elsif ($opt eq 'w')     { $trsp = 1; }
--    else                    { help(); }
- }
--Getopt::Mixed::cleanup();
--if (($ml && $footers eq '')||    # no -l without -L
--    ($ad && $ads eq '')||        # no -a without -A
--    ($nohdr && $pgpshort)||      # --body and --pgp-short are like oil and water
--    ($ifile eq '')||             # no empty -i
--    ($ofile eq ''))              # no empty -o
--{ help(); }
--
-+if (defined $_ta) { $sign = $_ta ? $_ta : undef; }
-+if (defined $_tb) { version(); }
-+if ($ms_smart) { $ms = 1; }
- if ($mua eq 'mutt') {
-     if (defined $locale && $locale ne '' && $locale ne 'C' && $locale ne 'POSIX') {
-@@ -1053,11 +1052,15 @@
-                 m/^([^%]*)/;
-         }
-     }
--
--}
--else {
--    if ($ms_smart || $pgpshort || $pgpmove || $pgpmovevrf) { help(); }
- }
-+elsif ($ms_smart || $pgpshort || $pgpmove || $pgpmovevrf) { help(); }
-+
-+if (($ml && $footers eq '')||    # no -l without -L
-+    ($ad && $ads eq '')||        # no -a without -A
-+    ($nohdr && $pgpshort)||      # --body and --pgp-short are like oil and water
-+    ($ifile eq '')||             # no empty -i
-+    ($ofile eq ''))              # no empty -o
-+{ help(); }
- # Read message:
diff --git a/contrib/t-prot-r1.276-gol.diff b/contrib/t-prot-r1.276-gol.diff
new file mode 100644 (file)
index 0000000..316c9b1
--- /dev/null
@@ -0,0 +1,183 @@
+--- t-prot     2010-02-01 23:34:42.000000000 +0100
++++ t-prot-gol 2010-02-01 23:35:27.000000000 +0100
+@@ -4,7 +4,7 @@
+ require 5.006;
+ use strict;
+ use Fcntl qw(O_EXCL O_WRONLY O_CREAT);
+-use Getopt::Mixed qw(nextOption);
++use Getopt::Long qw(:config gnu_getopt no_ignore_case);
+ use constant VER            => '2.13';
+ use constant REV            => '';
+ use constant REL            => q$Revision: 1.276 $=~m/(\d+(?:\.\d+)+)/;
+@@ -916,84 +916,83 @@
+     (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+ my $ifile   = '-';    # use STDIN if nothing specified
++# temp vals:
++my ($_t1, $_t2, $_t3, $_t4, $_t5, $_t6, $_t7, $_t8, $_t9, $_ta, $_tb) = undef;
++
+ # 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 groupwise'.
+-    ' help>h 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; }
+-    elsif ($opt eq 'bigq')  { 
+-        if ($val !~ /^(?:(\d+)(?:,(\d+))?)?$/) { help(); }
+-        $bigqn = $1?$1:30; 
+-        $bigqx = $2?$2:10;
+-        if ($bigqn<=0 || $bigqx<=0 || $bigqn<=$bigqx) { help(); }
+-    }
+-    elsif ($opt eq 'body')  { $nohdr = 1; $hdrs = 1; }
+-    elsif ($opt eq 'c')     { $cr = 1; }
+-    elsif ($opt eq 'check') {
+-        $check = 1;
+-        while ($val && $val =~ /^([^,\s]+)(?:,(\S+))?$/) {
+-            my $foo = $1;
+-            $val = $2;
+-
+-            if ($foo =~ /^ratio(?:=(0?\.\d+))?$/) {
+-                $check_ratio = $1?$1:0.75;
+-            }
+-        }
+-    }
+-    elsif ($opt eq 'd')     { $sysl = 1; }
+-    elsif ($opt eq 'diff')  { $diff = 1; }
+-    elsif ($opt eq 'e')     { $elli = 1; }
+-    elsif ($opt eq 'ftr-ad') { $ftr_ad = 1; $ad = 1; }
+-    elsif ($opt eq 'ftr-ml') { $ftr_ml = 1; $ml = 1; }
+-    elsif ($opt eq 'groupwise') { $gw = 1; }
+-    elsif ($opt eq 'i')     { $ifile = $val; }
+-    elsif ($opt eq 'k')     { $kamm = 1; }
+-    elsif ($opt eq 'kminl') { $kminl = $val; $kamm = 1; }
+-    elsif ($opt eq 'kmaxl') { $kmaxl = $val; $kamm = 1; }
+-    elsif ($opt eq 'kdiff') { $kdiff = $val; $kamm = 1; }
+-    elsif ($opt eq 'L')     { $footers = $val; }
+-    elsif ($opt eq 'l')     { $ml = 1; }
+-    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);
++if (!Getopt::Long::GetOptions(
++    'a'             => \$ad,
++    'A=s'           => \$ads,
++    'bigq:s'        => \$_t1,
++    'c'             => \$cr,
++    'check:s'       => \$_t9,
++    'debug|d'       => \$sysl,
++    'diff'          => \$diff,
++    'e'             => \$elli,
++    'ftr-ad'        => \$ftr_ad,
++    'ftr-ml'        => \$ftr_ml,
++    'groupwise'     => \$gw,
++    'help|h'        => \$_t2,
++    'i=s'           => \$ifile,
++    'k'             => \$kamm,
++    'kminl=i'       => \$_t3,
++    'kmaxl=i'       => \$_t4,
++    'kdiff=i'       => \$_t5,
++    'L=s'           => \$footers,
++    'l'             => \$ml,
++    'lax-security'  => \$lax,
++    'locale=s'      => \$locale,
++    'max-lines=i'   => \$maxlines,
++    'ms-smart'      => \$ms_smart,
++    'mua|M=s'       => \$_t7,
++    'm'             => \$ms,
++    'o=s'           => \$ofile,
++    'P=s'           => \$boun,
++    'p:s'           => \$_t8,
++    'pgp-short'     => \$pgpshort,
++    'pgp-move'      => \$pgpmove,
++    'pgp-move-vrf'  => \$pgpmovevrf,
++    'r'             => \$hdrs,
++    'S:i'           => \$_t6,
++    's'             => \$sig,
++    'sigsmax:i'     => \$_ta,
++    'spass'         => \$spass,
++    't'             => \$trad,
++    'version|v'     => \$_tb,
++    'w'             => \$trsp
++    )) {
++    help();
++}
+-        if ($mua eq 'mutt') {
+-            # mutt still displays the message when ^C'ing pgp verification:
+-            $SIG{'INT'} = 'sigint_handler';
+-        }
++# clean up temp vals:
++if (defined $_t1) {
++    if ($_t1 !~ /^(?:(\d+)(?:,(\d+))?)?$/) { help(); }
++    $bigqn = $1?$1:30; 
++    $bigqx = $2?$2:10; 
++    if ($bigqn<=0 || $bigqx<=0 || $bigqn<=$bigqx) { help(); }
++}
++if (defined $_t2) { help(); }
++if (defined $_t3) { $kminl = $_t3; $kamm = 1; }
++if (defined $_t4) { $kmaxl = $_t4; $kamm = 1; }
++if (defined $_t5) { $kdiff = $_t5; $kamm = 1; }
++if (defined $_t6) { $lsig = $_t6 ? $_t6 : $maxsig; }
++if (defined $_t7) {
++    $mua = lc($_t7);
++    # mutt still displays the message when ^C'ing pgp verification:
++    if ($mua eq 'mutt') { $SIG{'INT'} = 'sigint_handler'; }
++}
++if (defined $_t8) { $mda = $_t8 ? $_t8 : '1'; }
++if (defined $_t9) {
++    $check = 1;
++    while ($_t9 && $_t9 =~ /^([^,\s]+)(?:,(\S+))?$/) {
++        my $foo = $1;
++        $_t9 = $2;
++        if ($foo =~ /^ratio(?:=(0?\.\d+))?$/) { $check_ratio = $1?$1:0.75; }
+     }
+-    elsif ($opt eq 'o')     { $ofile = $val; }
+-    elsif ($opt eq 'P')     { $boun = $val; }
+-    elsif ($opt eq 'p')     { $mda = $val ? $val : '1'; }
+-    elsif ($opt eq 'pgp-short') { $pgpshort = 1; }
+-    elsif ($opt eq 'pgp-move') { $pgpmove = 1; }
+-    elsif ($opt eq 'pgp-move-vrf') { $pgpmovevrf = 1; }
+-    elsif ($opt eq 'r')     { $hdrs = 1; }
+-    elsif ($opt eq 'S')     { $lsig = $val ? $val : $maxsig; }
+-    elsif ($opt eq 's')     { $sig = 1; }
+-    elsif ($opt eq 'sigsmax') { $sign = $val ? $val : undef; }
+-    elsif ($opt eq 'spass') { $spass = 1; }
+-    elsif ($opt eq 't')     { $trad = 1; }
+-    elsif ($opt eq 'v')     { version(); }
+-    elsif ($opt eq 'w')     { $trsp = 1; }
+-    else                    { help(); }
+ }
+-Getopt::Mixed::cleanup();
+-if (($ml && $footers eq '')||    # no -l without -L
+-    ($ad && $ads eq '')||        # no -a without -A
+-    ($nohdr && $pgpshort)||      # --body and --pgp-short are like oil and water
+-    ($ifile eq '')||             # no empty -i
+-    ($ofile eq ''))              # no empty -o
+-{ help(); }
+-
++if (defined $_ta) { $sign = $_ta ? $_ta : undef; }
++if (defined $_tb) { version(); }
++if ($ms_smart) { $ms = 1; }
+ if ($mua eq 'mutt') {
+     if (defined $locale && $locale ne '' && $locale ne 'C' && $locale ne 'POSIX') {
+@@ -1058,6 +1057,13 @@
+ }
+ elsif ($ms_smart || $pgpshort || $pgpmove || $pgpmovevrf) { help(); }
++ 
++if (($ml && $footers eq '')||    # no -l without -L
++    ($ad && $ads eq '')||        # no -a without -A
++    ($nohdr && $pgpshort)||      # --body and --pgp-short are like oil and water
++    ($ifile eq '')||             # no empty -i
++    ($ofile eq ''))              # no empty -o
++{ help(); }
+ # Read message:
diff --git a/t-prot b/t-prot
index c67f94b9eeda32033ded9d3abcf49fae8d1be317..364af8e3746f2de28860b14d398154983de75af8 100755 (executable)
--- a/t-prot
+++ b/t-prot
@@ -1,13 +1,13 @@
 #!/usr/bin/perl -w
-# $Id: t-prot,v 1.271 2010/01/08 11:10:26 jochen Exp $
+# $Id: t-prot,v 1.277 2010/02/06 03:29:23 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.12';
+use constant VER            => '2.13';
 use constant REV            => '';
-use constant REL            => q$Revision: 1.271 $=~m/(\d+(?:\.\d+)+)/;
+use constant REL            => q$Revision: 1.277 $=~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';
@@ -36,8 +36,9 @@ use vars qw(
 );
 
 
-# Please adjust these vals to your needs (they are no constants because
-# command line can change them or they are used in rexexp's):
+# Please adjust these vals to your needs only if you know what you are
+# doing. They are no constants because command line can change them or
+# they are used in some rexexp.
 $0 =~ s!^.*/!!;
 $maxsig         = 4;      # max. valid signature length
 $maxlines       = undef;  # no limit of message lines
@@ -720,6 +721,8 @@ sub process_msg {
                 if ((!$k) && $$lines[$x] !~ /^\s*$/o &&
                     ((!$mua) ||
                      ($mua eq 'mutt' &&
+                         # this line seems not necessary since mutt-1.5.18:
+                         $$lines[$x] !~ /^\e[^\a]+\a$/o &&
                          $$lines[$x] !~
                              /^(?:\e[^\a]+\a)?(?:\Q$mutt_attachment\E)/o &&
                          $$lines[$x] !~
@@ -1055,9 +1058,7 @@ if ($mua eq 'mutt') {
     }
 
 }
-else {
-    if ($ms_smart || $pgpshort || $pgpmove || $pgpmovevrf) { help(); }
-}
+elsif ($ms_smart || $pgpshort || $pgpmove || $pgpmovevrf) { help(); }
 
 
 # Read message:
index 6ed54e113d340ed1156da51706fd0b7528891b14..035f9b975cad773157ef0891848a9d5fb0bd6e73 100644 (file)
--- a/t-prot.1
+++ b/t-prot.1
@@ -1,8 +1,8 @@
-.\" $Id: t-prot.1,v 1.144 2010/01/08 11:08:50 jochen Exp $
+.\" $Id: t-prot.1,v 1.148 2010/02/07 14:31:14 jochen Exp $
 .\"
-.TH T-PROT "1" "January 2010" "T-PROT"
+.TH T-PROT "1" "February 2010" "T-PROT"
 .SH NAME
-t-prot \- TOFU Protection - Display Filter for RFC 2822 messages
+t-prot \- TOFU Protection - Display Filter for RFC 5322 messages
 .SH SYNOPSIS
 .BI "t\-prot [" OPTIONS "]..."
 .SH DESCRIPTION
@@ -13,8 +13,8 @@ e.g. mailing list footers, signatures, and TOFU (see definition below),
 as well as squeezing sequences of blank lines or punctuation.
 .br
 The filter is written in Perl and relies on input to be a single
-message conforming to RFC 822 or its successor, RFC 2822. Messages
-conforming to RFCs 2045-2049 should be treated reasonably correct.
+message conforming to RFC 822 or its successors, RFC 2822 and RFC 5322.
+Messages conforming to RFCs 2045-2049 should be treated reasonably correct.
 .PP
 Already reformatted messages are handled well: the script was
 initially designed to cope with the output of the MUA mutt (which
@@ -74,7 +74,7 @@ be detected due to missing headers.
 .TP
 .B "\-c"
 "compress":
-Squeezes a sequence of blank lines to two blank lines at maximum.
+Squeezes a sequence of blank lines to just two blank lines.
 .TP
 .BR "\-\-check" [=FLAGS]
 Run checks. If successful, print an error message and quit with
@@ -88,10 +88,9 @@ following (right now just one flag):
 .br
 If the quoting ratio is n or more, the message is rejected. Must be
 between 0 and 1, or else it is entirely disabled. Default is 0.75
-(i.e., three quarters are quoted).
+(i.e., 75% of the message lines are quotes).
 .TP
 .B "\-d, \-\-debug"
-"debug":
 Print envelope info to syslog when bouncing TOFU contaminated email.
 Default syslog facility is mail.debug. Requires
 .BR \-p .
@@ -143,11 +142,9 @@ This requires a directory with footer files to be given with option
 .BR "\-L" =DIRECTORY.
 .TP
 .B "\-\-groupwise"
-"delete Groupwise style TOFU":
 Hides TOFU as produced by Novell Groupwise.
 .TP
 .B "\-h, \-\-help"
-"help":
 Displays a short help text with a summary on all options, and exits.
 .TP
 .BR "\-i" =FILE
@@ -430,7 +427,6 @@ CAVEAT: This may lead to interesting effects with crossposts
 between mailing lists or with undetected signature attempts.
 .TP
 .B "\-v, \-\-version"
-"version info":
 Prints the current version number and release date, and exits.
 .SH ENVIRONMENT
 The environment variables
@@ -585,8 +581,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .SH IDEAS AND INSPIRATION
 Many good ideas, bug reports and support from (in alphabetical order) Bjoern
 Buerger, Bjoern Laessig, Christian Borss, Gerfried Fuchs, Martin Neitzel, Martin
-Dietze, Ralf Doeblitz, Sven Guckes and many more (see the ChangeLog for active
-contributors). Many thanks to all of them!
+Dietze, Matthias Kilian, Ralf Doeblitz, Sven Guckes and many more (see the
+ChangeLog for active contributors). Many thanks to all of them!
 .sp
 Many thanks to Gerhard H. Wrodnigg who uses a TOFU protection script
 in order to keep the responses to his cancel bot reasonably short.  The
@@ -653,7 +649,7 @@ and the part about "display_filter",
 .BR perl (1),
 .BR aliases (5),
 .sp
-RFCs 2045-2049 and 2822,
+RFCs 2045-2049 and 5322,
 .sp
 .I http://got.to/quote/
 (German language),