projects
/
mmh
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
0334bab
)
Fix some bugs in replyfilter.
author
Ken Hornstein
<kenh@pobox.com>
Tue, 3 Apr 2012 17:04:47 +0000
(13:04 -0400)
committer
Ken Hornstein
<kenh@pobox.com>
Tue, 3 Apr 2012 17:04:47 +0000
(13:04 -0400)
docs/replyfilter
patch
|
blob
|
history
diff --git
a/docs/replyfilter
b/docs/replyfilter
index
de81f87
..
8906652
100755
(executable)
--- a/
docs/replyfilter
+++ b/
docs/replyfilter
@@
-68,7
+68,13
@@
die "Usage: $0 Content-type content-transfer-encoding quote-prefix\n"
if $#ARGV != 2;
if ($ARGV[0] ne "") {
if $#ARGV != 2;
if ($ARGV[0] ne "") {
- $content_type = Mail::Field->new('Content-Type', $ARGV[0]);
+ my $ctype = Mail::Field->new('Content-Type', $ARGV[0]);
+ $content_type = $ctype->type;
+ $charset = $ctype->charset;
+ $boundary = $ctype->boundary;
+} else {
+ $content_type = 'text/plain';
+ $charset = 'us-ascii';
}
$encoding = $ARGV[1] eq "" ? '7bit' : lc($ARGV[1]);
}
$encoding = $ARGV[1] eq "" ? '7bit' : lc($ARGV[1]);
@@
-85,8
+91,8
@@
binmode(STDOUT, ":encoding($outcharset)");
# to our format subroutine.
#
# to our format subroutine.
#
-if ($ARGV[0] eq "" || $content_type->type eq 'text/plain') {
- process_text(\*STDIN, $encoding, $content_type->charset);
+if ($content_type eq 'text/plain') {
+ process_text(\*STDIN, $encoding, $charset);
exit 0;
}
exit 0;
}
@@
-98,7
+104,7
@@
if ($ARGV[0] eq "" || $content_type->type eq 'text/plain') {
# Put markers in the output for other content types.
#
# Put markers in the output for other content types.
#
-($type) = (split('/', $content_type->type));
+($type) = (split('/', $content_type));
if ($type eq 'multipart') {
if ($type eq 'multipart') {
@@
-107,9
+113,7
@@
if ($type eq 'multipart') {
# Eat the MIME prologue (everything up until the first boundary)
#
# Eat the MIME prologue (everything up until the first boundary)
#
- $boundary = $content_type->boundary;
-
- if ($boundary eq '') {
+ if (! defined $boundary || $boundary eq '') {
print "No boundary in Content-Type header!\n";
eat_part(\*STDIN);
exit 1;
print "No boundary in Content-Type header!\n";
eat_part(\*STDIN);
exit 1;
@@
-127,8
+131,7
@@
if ($type eq 'multipart') {
undef $boundary;
}
undef $boundary;
}
-process_part(\*STDIN, $content_type->type, $encoding, $content_type->charset,
- $boundary);
+process_part(\*STDIN, $content_type, $encoding, $charset, $boundary);
if ($boundary) {
#
if ($boundary) {
#