+2006-11-30 14:06  Jochen Striepe
+
+       * t-prot: Release as v2.2.
+
+2006-11-30 13:02  Jochen Striepe
+
+       * t-prot: Add string to detect gmx.de's M$ style TOFU.
+
+2006-09-25 14:42  Jochen Striepe
+
+       * t-prot.1: Make sure we can ship files not copyrighted by the
+       author of the package.
+
+2006-07-16 08:50  Jochen Striepe
+
+       * t-prot.1: There are no patches for locales of old mutt versions.
+
 2006-07-11 14:05  Jochen Striepe
 
        * t-prot.1: Updated time stamp.
 
    It detects,  and when demanded  hides annoying parts in rfc2822 messages:
    TOFU, huge quoted blocks, signatures (especially when they are too long),
    excessive punktuation,  blocks of empty lines,  trailing spaces and tabs.
-   For use  inside of MTAs  or MDAs  it may exit with appropriate  libc exit
-   codes, so annoying messages may be bounced easily.
+   For use inside of MTAs or MDAs it exits with appropriate libc exit codes,
+   so annoying messages may be bounced easily.
    
 3. For what can I use it?
    There are  several possibilities.  One is  to filter your email  or news 
 
+++ /dev/null
---- t-prot     2006-06-18 00:45:55.000000000 +0200
-+++ t-prot-M1511       2006-07-11 14:22:56.000000000 +0200
-@@ -32,7 +32,7 @@
- 
-     $mutt_attachment $mutt_contenttype $mutt_pgpsigned $mutt_beginsigned
-     $mutt_pgpclearsigned $mutt_pgpclearsigstart $mutt_pgpencrypted
--    $mutt_pgpoutstart $mutt_pgpoutend
-+    $mutt_pgpoutstart $mutt_pgpoutend $mutt_ssloutstart $mutt_ssloutend
- );
- 
- 
-@@ -69,6 +69,8 @@
- $mutt_pgpencrypted      = '[-- End of PGP/MIME encrypted data --]';
- $mutt_pgpoutstart       = '[-- PGP output follows (current time:';
- $mutt_pgpoutend         = '[-- End of PGP output --]';
-+$mutt_ssloutstart       = '[-- OpenSSL output follows';
-+$mutt_ssloutend         = '[-- End of OpenSSL output --]';
- 
- # set the defaults to the C locale
- $gpg_WARNING            = 'WARNING: ';
-@@ -336,7 +338,7 @@
-     for (my $x=0; $x<scalar(@$L); $x++) {
-         if ($$V[$x]) { next; }
- 
--        if ($$L[$x]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E)/o)
-+        if ($$L[$x]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E|\Q$mutt_ssloutstart\E)/o)
-         {
-             my $from;
-             for (my $m=0; $m<scalar(@$H); $m++) {
-@@ -363,7 +365,7 @@
-                     splice(@$V, $i, 1);
-                     $i--;
-                 }
--                elsif ($$L[$i]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutend\E)/o)
-+                elsif ($$L[$i]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutend\E|\Q$mutt_ssloutend\E)/o)
-                 {
-                     if ($pgpmove ||
-                         ($pgpmovevrf && (!$sigint) && verified($L, $x+1, $i)))
-@@ -693,7 +695,7 @@
-                     'Forwarded message',
-                     'Weitergeleitete Nachricht / Forwarded Message');
-         my $k = 0;    # any text above?
--        my $tmp = 0;  # flagged if inside PGP output
-+        my $tmp = 0;  # flagged if inside PGP or SSL output
- 
-         DONE: for ($x=0; $x<scalar(@$lines); $x++) { 
-             if (!$vrb[$x]) {
-@@ -716,9 +718,11 @@
-                     ((!$spass) || index($$lines[$x], $spass_prefix)!=0))
-                 {
-                     if ($mua eq 'mutt' && (!$tmp) &&
--                        $$lines[$x] =~
--                             /^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E)/o) {
--                        $tmp = 1; 
-+                        ($$lines[$x] =~
-+                             /^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E)/o ||
-+                         $$lines[$x] =~
-+                             /^(?:\e[^\a]+\a)?(?:\Q$mutt_ssloutstart\E)/o)) {
-+                        $tmp = 1;
-                     } elsif ($mua eq 'mutt' && $tmp && 
-                         ($$lines[$x] =~
-                              /^(?:\e[^\a]+\a)?(?:\Q$mutt_beginsigned\E)/o ||
-@@ -989,8 +993,8 @@
-                 Locale::gettext::gettext("[-- Type: %s/%s, Encoding: %s, Size: %s --]\n") =~
-                 m/^([^%]*)/;
-             ($mutt_pgpsigned) =
--                Locale::gettext::gettext("[-- End of signed data --]\n")  =~
--                m/^(.*)\n/m;
-+                Locale::gettext::gettext("\n[-- End of signed data --]\n")  =~
-+                m/^\n*(.*)\n/m;
-             ($mutt_beginsigned) =
-                 Locale::gettext::gettext("[-- The following data is signed --]\n\n") =~
-                 m/^(.*)\n/m;
-@@ -998,16 +1002,24 @@
-                 Locale::gettext::gettext("[-- END PGP SIGNED MESSAGE --]\n") =~
-                 m/^(.*)\n/m;
-             ($mutt_pgpclearsigstart) =
--                Locale::gettext::gettext("[-- BEGIN PGP SIGNED MESSAGE --]\n") =~
-+                Locale::gettext::gettext("[-- BEGIN PGP SIGNED MESSAGE --]\n\n") =~
-                 m/^(.*)\n/m;
-             ($mutt_pgpencrypted) =
-                 Locale::gettext::gettext("[-- End of PGP/MIME encrypted data --]\n") =~
-                 m/^(.*)\n/m;
-             ($mutt_pgpoutstart) =
--                Locale::gettext::gettext("[-- PGP output follows (current time: %c) --]\n") =~
--                m/^([^%]*)/;
-+                Locale::gettext::gettext("[-- %s output follows%s --]\n") =~
-+                m/^(.*)%s/;
-+            $mutt_pgpoutstart =~ s/%s/PGP/;
-             ($mutt_pgpoutend) =
--                Locale::gettext::gettext("[-- End of PGP output --]\n") =~
-+                Locale::gettext::gettext("[-- End of PGP output --]\n\n") =~
-+                m/^(.*)\n/m;
-+            ($mutt_ssloutstart) =
-+                Locale::gettext::gettext("[-- %s output follows%s --]\n") =~
-+                m/^(.*)%s/;
-+            $mutt_ssloutstart =~ s/%s/OpenSSL/;
-+            ($mutt_ssloutend) =
-+                Locale::gettext::gettext("[-- End of OpenSSL output --]\n\n") =~
-                 m/^(.*)\n/m;
- 
-             Locale::gettext::textdomain('gnupg');
 
--- /dev/null
+--- t-prot     2006-06-18 00:45:55.000000000 +0200
++++ t-prot-M1511       2006-07-11 14:22:56.000000000 +0200
+@@ -32,7 +32,7 @@
+ 
+     $mutt_attachment $mutt_contenttype $mutt_pgpsigned $mutt_beginsigned
+     $mutt_pgpclearsigned $mutt_pgpclearsigstart $mutt_pgpencrypted
+-    $mutt_pgpoutstart $mutt_pgpoutend
++    $mutt_pgpoutstart $mutt_pgpoutend $mutt_ssloutstart $mutt_ssloutend
+ );
+ 
+ 
+@@ -69,6 +69,8 @@
+ $mutt_pgpencrypted      = '[-- End of PGP/MIME encrypted data --]';
+ $mutt_pgpoutstart       = '[-- PGP output follows (current time:';
+ $mutt_pgpoutend         = '[-- End of PGP output --]';
++$mutt_ssloutstart       = '[-- OpenSSL output follows';
++$mutt_ssloutend         = '[-- End of OpenSSL output --]';
+ 
+ # set the defaults to the C locale
+ $gpg_WARNING            = 'WARNING: ';
+@@ -336,7 +338,7 @@
+     for (my $x=0; $x<scalar(@$L); $x++) {
+         if ($$V[$x]) { next; }
+ 
+-        if ($$L[$x]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E)/o)
++        if ($$L[$x]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E|\Q$mutt_ssloutstart\E)/o)
+         {
+             my $from;
+             for (my $m=0; $m<scalar(@$H); $m++) {
+@@ -363,7 +365,7 @@
+                     splice(@$V, $i, 1);
+                     $i--;
+                 }
+-                elsif ($$L[$i]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutend\E)/o)
++                elsif ($$L[$i]=~/^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutend\E|\Q$mutt_ssloutend\E)/o)
+                 {
+                     if ($pgpmove ||
+                         ($pgpmovevrf && (!$sigint) && verified($L, $x+1, $i)))
+@@ -693,7 +695,7 @@
+                     'Forwarded message',
+                     'Weitergeleitete Nachricht / Forwarded Message');
+         my $k = 0;    # any text above?
+-        my $tmp = 0;  # flagged if inside PGP output
++        my $tmp = 0;  # flagged if inside PGP or SSL output
+ 
+         DONE: for ($x=0; $x<scalar(@$lines); $x++) { 
+             if (!$vrb[$x]) {
+@@ -716,9 +718,11 @@
+                     ((!$spass) || index($$lines[$x], $spass_prefix)!=0))
+                 {
+                     if ($mua eq 'mutt' && (!$tmp) &&
+-                        $$lines[$x] =~
+-                             /^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E)/o) {
+-                        $tmp = 1; 
++                        ($$lines[$x] =~
++                             /^(?:\e[^\a]+\a)?(?:\Q$mutt_pgpoutstart\E)/o ||
++                         $$lines[$x] =~
++                             /^(?:\e[^\a]+\a)?(?:\Q$mutt_ssloutstart\E)/o)) {
++                        $tmp = 1;
+                     } elsif ($mua eq 'mutt' && $tmp && 
+                         ($$lines[$x] =~
+                              /^(?:\e[^\a]+\a)?(?:\Q$mutt_beginsigned\E)/o ||
+@@ -989,8 +993,8 @@
+                 Locale::gettext::gettext("[-- Type: %s/%s, Encoding: %s, Size: %s --]\n") =~
+                 m/^([^%]*)/;
+             ($mutt_pgpsigned) =
+-                Locale::gettext::gettext("[-- End of signed data --]\n")  =~
+-                m/^(.*)\n/m;
++                Locale::gettext::gettext("\n[-- End of signed data --]\n")  =~
++                m/^\n*(.*)\n/m;
+             ($mutt_beginsigned) =
+                 Locale::gettext::gettext("[-- The following data is signed --]\n\n") =~
+                 m/^(.*)\n/m;
+@@ -998,16 +1002,24 @@
+                 Locale::gettext::gettext("[-- END PGP SIGNED MESSAGE --]\n") =~
+                 m/^(.*)\n/m;
+             ($mutt_pgpclearsigstart) =
+-                Locale::gettext::gettext("[-- BEGIN PGP SIGNED MESSAGE --]\n") =~
++                Locale::gettext::gettext("[-- BEGIN PGP SIGNED MESSAGE --]\n\n") =~
+                 m/^(.*)\n/m;
+             ($mutt_pgpencrypted) =
+                 Locale::gettext::gettext("[-- End of PGP/MIME encrypted data --]\n") =~
+                 m/^(.*)\n/m;
+             ($mutt_pgpoutstart) =
+-                Locale::gettext::gettext("[-- PGP output follows (current time: %c) --]\n") =~
+-                m/^([^%]*)/;
++                Locale::gettext::gettext("[-- %s output follows%s --]\n") =~
++                m/^(.*)%s/;
++            $mutt_pgpoutstart =~ s/%s/PGP/;
+             ($mutt_pgpoutend) =
+-                Locale::gettext::gettext("[-- End of PGP output --]\n") =~
++                Locale::gettext::gettext("[-- End of PGP output --]\n\n") =~
++                m/^(.*)\n/m;
++            ($mutt_ssloutstart) =
++                Locale::gettext::gettext("[-- %s output follows%s --]\n") =~
++                m/^(.*)%s/;
++            $mutt_ssloutstart =~ s/%s/OpenSSL/;
++            ($mutt_ssloutend) =
++                Locale::gettext::gettext("[-- End of OpenSSL output --]\n\n") =~
+                 m/^(.*)\n/m;
+ 
+             Locale::gettext::textdomain('gnupg');
 
-Patch 2005-12-23 by Gregor Herrmann, making t-prot.sl run with slang2.
-His comment:
+Patch 2005-12-23 (c) by Gregor Herrmann, making t-prot.sl run with
+slang2. His comment:
 
 | After some fiddling around and reading manuals I found a workaround:
 | replace "error" by "message".
 
 #!/usr/bin/perl -w
-# $Id: t-prot,v 1.246 2006/06/17 22:45:55 jochen Exp $
+# $Id: t-prot,v 1.248 2006/11/30 14:06:27 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.1';
+use constant VER            => '2.2';
 use constant REV            => '';
-use constant REL            => q$Revision: 1.246 $=~m/(\d+(?:\.\d+)+)/;
+use constant REL            => q$Revision: 1.248 $=~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';
     if ($ms) {
         # bloat this array if you want more internationalization:
         my @tofu = ('Original Message',
+                    'Original-Nachricht',
                     'Ursprüngliche Nachricht',
                     'Ursprungliche Nachricht',
                     'Mensagem original',
 
-.\" $Id: t-prot.1,v 1.125 2006/07/11 14:05:53 jochen Exp $
+.\" $Id: t-prot.1,v 1.127 2006/09/25 14:42:18 jochen Exp $
 .\"
 .TH T-PROT "1" "July 2006" "T-PROT"
 .SH NAME
 .B mutt
 locales of the recent stable versions of those programs, earlier versions
 might not work well with a recent version of t-prot. There are patches available
-to make t-prot fit into environments with old
+to make t-prot fit into environments with some other
 .B mutt
 and
 .B gnupg
 Written by Jochen Striepe <t-prot@tolot.escape.de>.
 .SH COPYRIGHT
 All of the documentation and software included in the t-prot releases
-is copyrighted by Jochen Striepe.
+is copyrighted by Jochen Striepe (except when explicitely stated otherwise).
 .PP
 Copyright \(co 2001-2006 Jochen Striepe. All rights reserved.                     
 .PP