#!/usr/bin/perl -w
-# $Id: t-prot,v 1.269 2010/01/05 12:05:03 jochen Exp $
+# $Id: t-prot,v 1.280 2010/02/11 11:10:47 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.11';
+use constant VER => '2.14';
use constant REV => '';
-use constant REL => q$Revision: 1.269 $=~m/(\d+(?:\.\d+)+)/;
+use constant REL => q$Revision: 1.280 $=~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';
);
-# 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
--pgp-move-vrf move pgp output if verified and good; requires -Mmutt
--pgp-short hide non-relevant pgp key uids; requires -Mmutt
-r delete mail header lines
- -S[=n] supress signatures with more than n lines;
- default is $maxsig if n not specified
+ -S[=n] supress signatures with more than n lines (default $maxsig)
-s delete signature
--sigsmax[=n] max number of sigs tolerated, no value for unlimited
--spass enable SpamAssassin workaround
my $uid = 1;
for (my $i=$x+1; $i<scalar(@$L); $i++) {
- if ($pgpshort && index($$L[$i], "gpg: $gpg_aka")==0)
- { $uid++; }
-
- if ($pgpshort && $uid>1 &&
- index($$L[$i], "gpg: $gpg_aka")==0 &&
- index($$L[$i], $from)<0)
- {
- splice(@$L, $i, 1);
- splice(@$V, $i, 1);
- $i--;
+ if ($pgpshort && index($$L[$i], "gpg: $gpg_aka")==0) {
+ $uid++;
+
+ if ($uid>1 && index($$L[$i], $from)<0) {
+ splice(@$L, $i, 1);
+ 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)/o) {
if ($pgpmove ||
($pgpmovevrf && (!$sigint) && verified($L, $x+1, $i)))
{
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] !~
}
}
-else {
- if ($ms_smart || $pgpshort || $pgpmove || $pgpmovevrf) { help(); }
-}
+elsif ($ms_smart || $pgpshort || $pgpmove || $pgpmovevrf) { help(); }
# Read message:
# First, check msg length and stop processing if msg is too long:
if ((defined $maxlines) && (@message > $maxlines)) {
if ($ofile ne 'NONE') {
+ if ($mua eq 'mutt') {
+ my $x = 0;
+ if (!$nohdr) {
+ do { $x++; } while ($x<$#message && $message[$x]!~/^$/);
+ $x++;
+ }
+ splice(@message, $x, 0,
+ ("[---=| Processing by $0 skipped: message too long |=---]\n\n"));
+ }
+
write_msg(($mda?'|'.SENDMAIL." $mda":">$ofile"), \@message);
}
+ if ($mua eq 'mutt') { exit(EX_OK); }
exit(EX_DATAERR);
}