+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