diff options
author | Andrey A. Chernov <ache@FreeBSD.org> | 1998-02-14 02:56:03 +0000 |
---|---|---|
committer | Andrey A. Chernov <ache@FreeBSD.org> | 1998-02-14 02:56:03 +0000 |
commit | 6afaf37f4792a57c7587f1da9111daf85dae7e51 (patch) | |
tree | 6dc0653ef6d502b400c294ebeeec96c3815226f1 /mail/premail | |
parent | a858ee6ce6b6aa7aeeeab6fa811efae157944dbf (diff) | |
download | ports-6afaf37f4792a57c7587f1da9111daf85dae7e51.tar.gz ports-6afaf37f4792a57c7587f1da9111daf85dae7e51.zip |
Notes
Diffstat (limited to 'mail/premail')
-rw-r--r-- | mail/premail/files/patch-aa | 773 |
1 files changed, 422 insertions, 351 deletions
diff --git a/mail/premail/files/patch-aa b/mail/premail/files/patch-aa index fd403c327e11..535613496b1c 100644 --- a/mail/premail/files/patch-aa +++ b/mail/premail/files/patch-aa @@ -1,351 +1,422 @@ -*** premail.orig Thu Oct 31 06:25:10 1996 ---- premail Sun Jun 15 00:26:28 1997 -*************** -*** 226,232 **** - # Return the name of the real sendmail executable - if (!defined $config{'sendmail'} || $config{'sendmail'} eq '') { - # Standard place -! (-x '/usr/lib/sendmail') && return '/usr/lib/sendmail'; - # Newer BSD-based systems - (-x '/usr/sbin/sendmail') && return '/usr/sbin/sendmail'; - # Okay, I give up ---- 226,232 ---- - # Return the name of the real sendmail executable - if (!defined $config{'sendmail'} || $config{'sendmail'} eq '') { - # Standard place -! #(-x '/usr/lib/sendmail') && return '/usr/lib/sendmail'; - # Newer BSD-based systems - (-x '/usr/sbin/sendmail') && return '/usr/sbin/sendmail'; - # Okay, I give up -*************** -*** 308,313 **** ---- 308,319 ---- - if ($1 =~ /^[mwpqe]$/) { push (@sendmail_args, $_); } - } elsif (/^\-od(.)$/) { - push (@sendmail_args, $_); -+ } elsif (/^\-[BNRV].+$/) { -+ push (@sendmail_args, $_); -+ } elsif (/^\-[BNRV]$/) { -+ if ($#_ < 0) { &error ("$_ option needs an argument\n"); } -+ push (@sendmail_args, $_); -+ push (@sendmail_args, shift); - } elsif (/^\-f$/) { - if ($#_ < 0) { &error ("$_ option needs an argument\n"); } - shift; # discard -*************** -*** 1268,1274 **** - my ($body, @the_recips) = @_; - my ($key_type, $key); - my (@keys); -! my ($new_body, $err, $line); - my (@mime_fields, $prefix, $boundary); - my ($sign_type, $sign); - my ($invoc, $errfile); ---- 1274,1280 ---- - my ($body, @the_recips) = @_; - my ($key_type, $key); - my (@keys); -! my ($err, $line); - my (@mime_fields, $prefix, $boundary); - my ($sign_type, $sign); - my ($invoc, $errfile); -*************** -*** 1354,1360 **** - my ($body, @the_recips) = @_; - my ($key_type, $key); - my (@keys); -! my ($new_body, $err, $line); - my (@mime_fields, $prefix); - my ($sign_type, $sign); - my ($invoc, $errfile); ---- 1360,1366 ---- - my ($body, @the_recips) = @_; - my ($key_type, $key); - my (@keys); -! my ($err, $line); - my (@mime_fields, $prefix); - my ($sign_type, $sign); - my ($invoc, $errfile); -*************** -*** 2214,2220 **** - # we know it's sendmail - $invoc = &bin_sendmail (); - if ($#sendmail_args >= 0) { -! $invoc .= ' '.join (' ', $sendmail_args); - } - $invoc .= ' -oi'; - foreach $recip (@the_recips) { ---- 2220,2226 ---- - # we know it's sendmail - $invoc = &bin_sendmail (); - if ($#sendmail_args >= 0) { -! $invoc .= ' '.join (' ', @sendmail_args); - } - $invoc .= ' -oi'; - foreach $recip (@the_recips) { -*************** -*** 3040,3046 **** - $pass = ''; - } - if ($pubring) { $invoc .= ' +pubring='.&shell_quote ($pubring); } -! $invoc .= ' +comment= -feat'; - if ($sign) { - $invoc .= 's -u '.&shell_quote ($signuser); - &load_secrets (); ---- 3046,3052 ---- - $pass = ''; - } - if ($pubring) { $invoc .= ' +pubring='.&shell_quote ($pubring); } -! $invoc .= ' +language=en +comment= -feat'; - if ($sign) { - $invoc .= 's -u '.&shell_quote ($signuser); - &load_secrets (); -*************** -*** 3126,3132 **** - $signuser = '0x'; - $pass = ''; - } -! $invoc .= ' +comment= -fats +clearsig=on'; - $invoc .= ' -u '.&shell_quote ($signuser); - unless (defined $pass) { - if (defined $pgppass{$signuser}) { ---- 3132,3138 ---- - $signuser = '0x'; - $pass = ''; - } -! $invoc .= ' +language=en +comment= -fats +clearsig=on'; - $invoc .= ' -u '.&shell_quote ($signuser); - unless (defined $pass) { - if (defined $pgppass{$signuser}) { -*************** -*** 3182,3188 **** - $signuser = '0x'; - $pass = ''; - } -! $invoc .= ' +comment= -fabst'; - $invoc .= ' -u '.&shell_quote ($signuser); - unless (defined $pass) { - if (defined $pgppass{$signuser}) { ---- 3188,3194 ---- - $signuser = '0x'; - $pass = ''; - } -! $invoc .= ' +language=en +comment= -fabst'; - $invoc .= ' -u '.&shell_quote ($signuser); - unless (defined $pass) { - if (defined $pgppass{$signuser}) { -*************** -*** 3251,3257 **** - $outfile = &tmp_filename (); - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +batchmode=on'; - $invoc .= " +pubring=$PUBRING" if $PUBRING; - $invoc .= " +secring=$SECRING" if $SECRING; - # if ($pass =~ /^RING$;/) { ---- 3257,3263 ---- - $outfile = &tmp_filename (); - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +language=en +batchmode=on'; - $invoc .= " +pubring=$PUBRING" if $PUBRING; - $invoc .= " +secring=$SECRING" if $SECRING; - # if ($pass =~ /^RING$;/) { -*************** -*** 3299,3305 **** - - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +batchmode=on '; - $invoc .= ' '.$pgp_file; - $invoc .= ' '.$signed_file; - $invoc .= ' > '.$errfile.' 2>&1'; ---- 3305,3311 ---- - - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +language=en +batchmode=on '; - $invoc .= ' '.$pgp_file; - $invoc .= ' '.$signed_file; - $invoc .= ' > '.$errfile.' 2>&1'; -*************** -*** 3390,3396 **** - $chars_needed = 2 + sprintf ("%d", $bits / 8); - &pdv ($config{'pgp'}." +makerandom=$chars_needed $outf" - ." >/dev/null 2>&1\n"); -! $status = system $config{'pgp'}." +makerandom=$chars_needed $outf" - ." >/dev/null 2>&1"; - &pdv ($status."\n"); - if (!$status) { ---- 3396,3402 ---- - $chars_needed = 2 + sprintf ("%d", $bits / 8); - &pdv ($config{'pgp'}." +makerandom=$chars_needed $outf" - ." >/dev/null 2>&1\n"); -! $status = system $config{'pgp'}." +language=en +makerandom=$chars_needed $outf" - ." >/dev/null 2>&1"; - &pdv ($status."\n"); - if (!$status) { -*************** -*** 3626,3636 **** - - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +batchmode=on -f'; - $invoc .= ' < '.$ps_pgp; - $invoc .= ' > '.$ps; - $invoc .= ' 2> '.$errfile; - &pdv ("Invoking PGP as $invoc\n"); - $status = &open_pgp ($invoc, $pass, ''); - $err = &read_and_delete ($errfile); - &pdv ($err); ---- 3632,3645 ---- - - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +language=en +batchmode=on -f'; - $invoc .= ' < '.$ps_pgp; - $invoc .= ' > '.$ps; - $invoc .= ' 2> '.$errfile; - &pdv ("Invoking PGP as $invoc\n"); -+ if(-e $ps) { -+ &error ("Premail secrets file already exists\n"); -+ } - $status = &open_pgp ($invoc, $pass, ''); - $err = &read_and_delete ($errfile); - &pdv ($err); -*************** -*** 3647,3653 **** - unlink $ps_pgp; - } - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +batchmode=on -cf'; - $invoc .= ' < '.$ps; - $invoc .= ' > '.$ps_pgp; - $invoc .= ' 2> '.$errfile; ---- 3656,3662 ---- - unlink $ps_pgp; - } - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +language=en +batchmode=on -cf'; - $invoc .= ' < '.$ps; - $invoc .= ' > '.$ps_pgp; - $invoc .= ' 2> '.$errfile; -*************** -*** 5129,5135 **** - &load_secrets (); - foreach (keys %pgpring) { - my ($tpr, $tsr) = &makerings ($pgpring{$_}); -! system ("$PGP +batchmode +verbose=0 -kx 0x $pr $tpr > /dev/null"); - #filecat ($tpr, $pr); - filecat ($tsr, $sr); - &delete_tmpfile ($tpr); ---- 5138,5144 ---- - &load_secrets (); - foreach (keys %pgpring) { - my ($tpr, $tsr) = &makerings ($pgpring{$_}); -! system ("$PGP +language=en +batchmode +verbose=0 -kx 0x $pr $tpr > /dev/null"); - #filecat ($tpr, $pr); - filecat ($tsr, $sr); - &delete_tmpfile ($tpr); -*************** -*** 5162,5168 **** - } - my $PGP = &tilde_expand ($config{'pgp'}); - foreach $id (@pubkeys) { -! my $invoc = "$PGP +batchmode +force +verbose=0 -kx " - . "$id $pr $pubring 2>&1"; - &pdv ("$invoc > /dev/null\n"); - system "$invoc > /dev/null"; ---- 5171,5177 ---- - } - my $PGP = &tilde_expand ($config{'pgp'}); - foreach $id (@pubkeys) { -! my $invoc = "$PGP +language=en +batchmode +force +verbose=0 -kx " - . "$id $pr $pubring 2>&1"; - &pdv ("$invoc > /dev/null\n"); - system "$invoc > /dev/null"; -*************** -*** 5189,5195 **** - $outfile = &tmp_filename (); - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +batchmode +force +verbose=0 '; - $invoc .= " +pubring=$pr +secring=$sr "; - $invoc .= $cmd; - $invoc .= ' < ' . $infile if $infile; ---- 5198,5204 ---- - $outfile = &tmp_filename (); - $errfile = &tmp_filename (); - $invoc = &tilde_expand ($config{'pgp'}); -! $invoc .= ' +language=en +batchmode +force +verbose=0 '; - $invoc .= " +pubring=$pr +secring=$sr "; - $invoc .= $cmd; - $invoc .= ' < ' . $infile if $infile; -*************** -*** 5248,5254 **** - EOF - <STDIN>; - -! if (system ("$PGP -kg +pubring=$pr +secring=$sr +verbose=0")) { - print STDERR "\nKey generation failed.\n"; - &killbaks ($pr, $sr); - &delete_open_tmpfiles (); ---- 5257,5263 ---- - EOF - <STDIN>; - -! if (system ("$PGP +language=en -kg +pubring=$pr +secring=$sr +verbose=0")) { - print STDERR "\nKey generation failed.\n"; - &killbaks ($pr, $sr); - &delete_open_tmpfiles (); -*************** -*** 5272,5278 **** - foreach $a ("$kid $pr", - "$remid $pr " . &tilde_expand ($config{'pubring'}), - "$kid $sr $defsr") { -! my $invoc = "$PGP +batchmode +force +verbose=0 -kx $a 2>&1"; - # print STDERR "+ $invoc\n"; - my $result = `$invoc`; - unless ($result =~ /^Key extracted/m) { ---- 5281,5287 ---- - foreach $a ("$kid $pr", - "$remid $pr " . &tilde_expand ($config{'pubring'}), - "$kid $sr $defsr") { -! my $invoc = "$PGP +language=en +batchmode +force +verbose=0 -kx $a 2>&1"; - # print STDERR "+ $invoc\n"; - my $result = `$invoc`; - unless ($result =~ /^Key extracted/m) { -*************** -*** 5300,5306 **** - EOF - <STDIN>; - -! my $invoc = "$PGP +secring=$sr -ke $kid $pr"; - # print STDERR "+ $invoc\n"; - if (system ($invoc)) { - print STDERR "Edit failed.\n"; ---- 5309,5315 ---- - EOF - <STDIN>; - -! my $invoc = "$PGP +language=en +secring=$sr -ke $kid $pr"; - # print STDERR "+ $invoc\n"; - if (system ($invoc)) { - print STDERR "Edit failed.\n"; -*************** -*** 6315,6321 **** - # Open a Web connection for the file as file handle WWW. - my ($url) = @_; - my ($host, $port, $suf); -! my ($fqdn, $aliases, $type, $len, $thataddr); - my ($name, $proto); - my ($that, $thataddr); - my ($savesel, $gotsep); ---- 6324,6330 ---- - # Open a Web connection for the file as file handle WWW. - my ($url) = @_; - my ($host, $port, $suf); -! my ($fqdn, $aliases, $type, $len); - my ($name, $proto); - my ($that, $thataddr); - my ($savesel, $gotsep); +--- premail.old Thu Oct 31 06:25:10 1996 ++++ premail Sat Feb 14 05:44:15 1998 +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl ++#!/usr/local/bin/perl -w + # + # premail, an e-mail privacy package + # +@@ -96,6 +96,7 @@ + + # the following config options are for testing only! + #$config{'debug'} = 'chvy'; ++$config{'debug'} = ''; + + # Global state + +@@ -112,6 +113,7 @@ + $editfile = ''; # name of file to edit + $dashoi = 0; # -oi on cmd line + $more_input = 1; ++$in_active = 0; # IN handler opened + $header_sep = ''; + $in_body = ''; # the filename of the input message body + $prezilla = 0; # special mode for Netscape Navigator 2.1 +@@ -226,7 +228,7 @@ + # Return the name of the real sendmail executable + if (!defined $config{'sendmail'} || $config{'sendmail'} eq '') { + # Standard place +- (-x '/usr/lib/sendmail') && return '/usr/lib/sendmail'; ++ #(-x '/usr/lib/sendmail') && return '/usr/lib/sendmail'; + # Newer BSD-based systems + (-x '/usr/sbin/sendmail') && return '/usr/sbin/sendmail'; + # Okay, I give up +@@ -308,6 +310,12 @@ + if ($1 =~ /^[mwpqe]$/) { push (@sendmail_args, $_); } + } elsif (/^\-od(.)$/) { + push (@sendmail_args, $_); ++ } elsif (/^\-[BNRV].+$/) { ++ push (@sendmail_args, $_); ++ } elsif (/^\-[BNRV]$/) { ++ if ($#_ < 0) { &error ("$_ option needs an argument\n"); } ++ push (@sendmail_args, $_); ++ push (@sendmail_args, shift); + } elsif (/^\-f$/) { + if ($#_ < 0) { &error ("$_ option needs an argument\n"); } + shift; # discard +@@ -363,7 +371,7 @@ + &apply_cmdline_configs (); + if ($config{'preferences'}) { + $preferences = &tilde_expand ($config{'preferences'}); +- open (PREF, $preferences); ++ if (open (PREF, $preferences)) { + while (<PREF>) { + if (/^\s*\$config\{\"([^\"]+)\"\}\s*\=\s*\"([^\"]*)\"/ + || /^\s*\$config\{\'([^\']+)\'\}\s*\=\s*\'([^\']*)\'/) { +@@ -371,10 +379,11 @@ + } + } + close (PREF); ++ } + } + &apply_cmdline_configs (); + if ($config{'addresses'}) { +- open (ADDR, &tilde_expand ($config{'addresses'})); ++ if (open (ADDR, &tilde_expand ($config{'addresses'}))) { + while (<ADDR>) { + if (/^([\w\-\_\+\.\@\!]+)\:\s*(.*)$/) { + $recip = &strip_address ($1); +@@ -382,6 +391,7 @@ + } + } + close (ADDR); ++ } + } + if ($config{'logfile'}) { + open (LOG, '>>'.&tilde_expand_mkdir ($config{'logfile'})); +@@ -413,6 +423,7 @@ + if (!open (IN, $editfile)) { + &error ("cannot open edit file $editfile\n"); + } ++ $in_active = 1; + return 1; + } elsif ($dashbs) { + # do simple SMTP +@@ -463,7 +474,9 @@ + + @in_headers = (); + for ($lineno = 0;;$lineno++) { +- $line = &get_line_body ($body); ++ if (! defined($line = &get_line_body ($body))) { ++ last; ++ } + if ($handle_from && $lineno == 0 && $line =~ /^From /) { + return $line; + } +@@ -495,16 +508,16 @@ + my $line; + + if ($edit || $post) { +- $line = <IN>; ++ $line = <IN> if ($in_active); + } elsif ($dashbs) { + $line = <STDIN>; +- if ($line eq ".\n") { return undef; } ++ if (!defined $line || $line eq ".\n") { return undef; } + $line =~ s/^\.\./\./; + } else { + $line = <STDIN>; + if (!defined $line || !$dashoi && $line eq ".\n") { return undef; } + } +- $line =~ s/\r$//; ++ $line =~ s/\r$// if defined $line; + return $line; + } + +@@ -516,6 +529,7 @@ + # } + if ($edit || $post) { + close (IN); ++ $in_active = 0; + } elsif ($dashbs) { + print "250 Message accepted for delivery\n"; + $more_input = 1; +@@ -1268,7 +1282,7 @@ + my ($body, @the_recips) = @_; + my ($key_type, $key); + my (@keys); +- my ($new_body, $err, $line); ++ my ($err, $line); + my (@mime_fields, $prefix, $boundary); + my ($sign_type, $sign); + my ($invoc, $errfile); +@@ -1354,7 +1368,7 @@ + my ($body, @the_recips) = @_; + my ($key_type, $key); + my (@keys); +- my ($new_body, $err, $line); ++ my ($err, $line); + my (@mime_fields, $prefix); + my ($sign_type, $sign); + my ($invoc, $errfile); +@@ -1687,7 +1701,7 @@ + } + } + if ($put_open) { close (PUT); } +- close (GET); ++ close (WWW); + } + } + +@@ -1817,7 +1831,7 @@ + } + } + push (@deliver_headers, "To\: $new_to\n"); +- if ($addl =~ /\.(encrypt\-key\:\s*[^\.]+)(\.|$)/i) { ++ if (defined $addl && $addl =~ /\.(encrypt\-key\:\s*[^\.]+)(\.|$)/i) { + $hash = "$1\n".$hash; + $body = &cat_tail ($body, "\*\*\n"); + } +@@ -2214,7 +2228,7 @@ + # we know it's sendmail + $invoc = &bin_sendmail (); + if ($#sendmail_args >= 0) { +- $invoc .= ' '.join (' ', $sendmail_args); ++ $invoc .= ' '.join (' ', @sendmail_args); + } + $invoc .= ' -oi'; + foreach $recip (@the_recips) { +@@ -2252,11 +2266,11 @@ + &close_body ($body); + if ($post) { + close (DELIVER); +- $post = &tilde_expand ($config{'post'}); +- if ($post eq '') { +- $post = "/usr/lib/mh/post"; ++ my $ppost = &tilde_expand ($config{'post'}); ++ if ($ppost eq '') { ++ $ppost = "/usr/lib/mh/post"; + } +- system ($post, @post_args, $tmpfile); ++ system ($ppost, @post_args, $tmpfile); + unlink $tmpfile; + } elsif ($edit && !$prezilla) { + close (DELIVER); +@@ -2801,6 +2815,7 @@ + # (@new_dict) = &delete_field ($key, @dict) + my ($key, @dict) = @_; + my (@new_dict); ++ my ($field_key, $field_val); + + @new_dict = (); + foreach $field (@dict) { +@@ -2972,8 +2987,8 @@ + + $data = ''; + if (open (ERRFILE, $file)) { +- print $_; + while (<ERRFILE>) { ++# print $_; + $data .= $_; + } + close (ERRFILE); +@@ -3040,7 +3055,7 @@ + $pass = ''; + } + if ($pubring) { $invoc .= ' +pubring='.&shell_quote ($pubring); } +- $invoc .= ' +comment= -feat'; ++ $invoc .= ' +language=en +comment= -feat'; + if ($sign) { + $invoc .= 's -u '.&shell_quote ($signuser); + &load_secrets (); +@@ -3126,7 +3141,7 @@ + $signuser = '0x'; + $pass = ''; + } +- $invoc .= ' +comment= -fats +clearsig=on'; ++ $invoc .= ' +language=en +comment= -fats +clearsig=on'; + $invoc .= ' -u '.&shell_quote ($signuser); + unless (defined $pass) { + if (defined $pgppass{$signuser}) { +@@ -3182,7 +3197,7 @@ + $signuser = '0x'; + $pass = ''; + } +- $invoc .= ' +comment= -fabst'; ++ $invoc .= ' +language=en +comment= -fabst'; + $invoc .= ' -u '.&shell_quote ($signuser); + unless (defined $pass) { + if (defined $pgppass{$signuser}) { +@@ -3238,7 +3253,7 @@ + return ($mimefile, $err, $boundary); + } + +-my $PUBRING, $SECRING; ++my ($PUBRING, $SECRING); + sub pgp_decrypt { + # ($out_body, $err) = &pgp_decrypt ($body, $pass) + # Try to decrypt $body using passphrase $pass. $out_body is null on error. +@@ -3251,7 +3266,7 @@ + $outfile = &tmp_filename (); + $errfile = &tmp_filename (); + $invoc = &tilde_expand ($config{'pgp'}); +- $invoc .= ' +batchmode=on'; ++ $invoc .= ' +language=en +batchmode=on'; + $invoc .= " +pubring=$PUBRING" if $PUBRING; + $invoc .= " +secring=$SECRING" if $SECRING; + # if ($pass =~ /^RING$;/) { +@@ -3299,7 +3314,7 @@ + + $errfile = &tmp_filename (); + $invoc = &tilde_expand ($config{'pgp'}); +- $invoc .= ' +batchmode=on '; ++ $invoc .= ' +language=en +batchmode=on '; + $invoc .= ' '.$pgp_file; + $invoc .= ' '.$signed_file; + $invoc .= ' > '.$errfile.' 2>&1'; +@@ -3390,7 +3405,7 @@ + $chars_needed = 2 + sprintf ("%d", $bits / 8); + &pdv ($config{'pgp'}." +makerandom=$chars_needed $outf" + ." >/dev/null 2>&1\n"); +- $status = system $config{'pgp'}." +makerandom=$chars_needed $outf" ++ $status = system $config{'pgp'}." +language=en +makerandom=$chars_needed $outf" + ." >/dev/null 2>&1"; + &pdv ($status."\n"); + if (!$status) { +@@ -3626,11 +3641,14 @@ + + $errfile = &tmp_filename (); + $invoc = &tilde_expand ($config{'pgp'}); +- $invoc .= ' +batchmode=on -f'; ++ $invoc .= ' +language=en +batchmode=on -f'; + $invoc .= ' < '.$ps_pgp; + $invoc .= ' > '.$ps; + $invoc .= ' 2> '.$errfile; + &pdv ("Invoking PGP as $invoc\n"); ++ if(-e $ps) { ++ &error ("Premail secrets file already exists\n"); ++ } + $status = &open_pgp ($invoc, $pass, ''); + $err = &read_and_delete ($errfile); + &pdv ($err); +@@ -3647,7 +3665,7 @@ + unlink $ps_pgp; + } + $invoc = &tilde_expand ($config{'pgp'}); +- $invoc .= ' +batchmode=on -cf'; ++ $invoc .= ' +language=en +batchmode=on -cf'; + $invoc .= ' < '.$ps; + $invoc .= ' > '.$ps_pgp; + $invoc .= ' 2> '.$errfile; +@@ -3910,7 +3928,8 @@ + &replace_field ('Content-Type: text/plain; charset=' + .$config{'charset'}."\n", + @deliver_headers); +- } elsif ($charset =~ /^iso-8859-\d$/i && !$non_ascii) { ++ } elsif (($charset =~ /^iso-8859-\d$/i || $charset =~ /^koi8-r$/i) ++ && !$non_ascii) { + # Should we detect other charsets which are supersets of us-ascii? + if (!$mv_present) { + push (@deliver_headers, 'MIME-Version: 1.0'."\n"); +@@ -3923,7 +3942,8 @@ + } + } + # must deal with existing cte, charset, etc. +- if ($non_ascii || $ctrl || $other) { ++ if ((($non_ascii || $ctrl) && (!$cte_present || lc $cte_val ne '8bit')) ++ || $other) { + # Do the QP + &pdv ("Doing QP encoding!\n"); + if (!$mv_present) { +@@ -4336,6 +4356,8 @@ + exit 0; + } + ++use vars qw($SAVE_BODY); ++ + sub decode_msg { + # &decode_msg ($msg) + # This is possibly the ugliest function in all of premail. Most of it is +@@ -5129,7 +5151,7 @@ + &load_secrets (); + foreach (keys %pgpring) { + my ($tpr, $tsr) = &makerings ($pgpring{$_}); +- system ("$PGP +batchmode +verbose=0 -kx 0x $pr $tpr > /dev/null"); ++ system ("$PGP +language=en +batchmode +verbose=0 -kx 0x $pr $tpr > /dev/null"); + #filecat ($tpr, $pr); + filecat ($tsr, $sr); + &delete_tmpfile ($tpr); +@@ -5157,12 +5179,12 @@ + # &pdv ('&makerings ("'.join ('", "', @_)."\")\n"); + foreach ([$pr, $pk], [$sr, $sk]) { + open TMP, ">$$_[0]"; +- print TMP $$_[1]; ++ print TMP $$_[1] if defined $$_[1]; + close TMP; + } + my $PGP = &tilde_expand ($config{'pgp'}); + foreach $id (@pubkeys) { +- my $invoc = "$PGP +batchmode +force +verbose=0 -kx " ++ my $invoc = "$PGP +language=en +batchmode +force +verbose=0 -kx " + . "$id $pr $pubring 2>&1"; + &pdv ("$invoc > /dev/null\n"); + system "$invoc > /dev/null"; +@@ -5189,7 +5211,7 @@ + $outfile = &tmp_filename (); + $errfile = &tmp_filename (); + $invoc = &tilde_expand ($config{'pgp'}); +- $invoc .= ' +batchmode +force +verbose=0 '; ++ $invoc .= ' +language=en +batchmode +force +verbose=0 '; + $invoc .= " +pubring=$pr +secring=$sr "; + $invoc .= $cmd; + $invoc .= ' < ' . $infile if $infile; +@@ -5248,7 +5270,7 @@ + EOF + <STDIN>; + +- if (system ("$PGP -kg +pubring=$pr +secring=$sr +verbose=0")) { ++ if (system ("$PGP +language=en -kg +pubring=$pr +secring=$sr +verbose=0")) { + print STDERR "\nKey generation failed.\n"; + &killbaks ($pr, $sr); + &delete_open_tmpfiles (); +@@ -5272,7 +5294,7 @@ + foreach $a ("$kid $pr", + "$remid $pr " . &tilde_expand ($config{'pubring'}), + "$kid $sr $defsr") { +- my $invoc = "$PGP +batchmode +force +verbose=0 -kx $a 2>&1"; ++ my $invoc = "$PGP +language=en +batchmode +force +verbose=0 -kx $a 2>&1"; + # print STDERR "+ $invoc\n"; + my $result = `$invoc`; + unless ($result =~ /^Key extracted/m) { +@@ -5300,7 +5322,7 @@ + EOF + <STDIN>; + +- my $invoc = "$PGP +secring=$sr -ke $kid $pr"; ++ my $invoc = "$PGP +language=en +secring=$sr -ke $kid $pr"; + # print STDERR "+ $invoc\n"; + if (system ($invoc)) { + print STDERR "Edit failed.\n"; +@@ -5771,6 +5793,7 @@ + if (!open (IN, $body)) { + &error ("Internal error opening replyblock\n"); + } ++ $in_active = 1; + @in_headers = ("To: $to\n"); + push (@in_headers, "Chain: $chain\n") if $chain; + $header_sep = "\n"; +@@ -5784,6 +5807,7 @@ + } + &send_group ($groups[0]); + close (IN); ++ $in_active = 0; + } + + sub find_nym { +@@ -5997,7 +6021,7 @@ + + # The main loop + $quit = 0; +- $inoef = 0; ++ $ineof = 0; + while (!$quit) { + $rin = $win = $ein = ''; + vec ($rin, fileno(STDIN), 1) = 1 unless $ineof; +@@ -6315,7 +6339,7 @@ + # Open a Web connection for the file as file handle WWW. + my ($url) = @_; + my ($host, $port, $suf); +- my ($fqdn, $aliases, $type, $len, $thataddr); ++ my ($fqdn, $aliases, $type, $len); + my ($name, $proto); + my ($that, $thataddr); + my ($savesel, $gotsep); +@@ -6330,7 +6354,7 @@ + $host = $1; + $port = $2; + $suf = $3; +- if ($port =~ /^\:(\d+)$/) { $port = $1; } ++ if (defined $port && $port =~ /^\:(\d+)$/) { $port = $1; } + else { $port = 80; } + ($fqdn, $aliases, $type, $len, $thataddr) = gethostbyname ($host); + return &pdv ("Host not found: $host\n") if ($thataddr eq ''); |