X-Git-Url: https://git.donarmstrong.com/?p=debbugs.git;a=blobdiff_plain;f=Debbugs%2FMail.pm;h=a2a27d237ae819937fbf187964c4939d33f45096;hp=a00b41c4b72fcf796d6bee1eb5e2ab212fca50ed;hb=6adc50fe899f229b17e6ee08537a4e9152a1e4fb;hpb=e54464a1cb68c4d8d72fa8a152195d5e8915df4b diff --git a/Debbugs/Mail.pm b/Debbugs/Mail.pm index a00b41c..a2a27d2 100644 --- a/Debbugs/Mail.pm +++ b/Debbugs/Mail.pm @@ -444,14 +444,36 @@ sub reply_headers{ my $body = "On $date $who wrote:\n"; my $i = 60; - my $b_h = $entity->bodyhandle; - my $IO = $b_h->open("r"); - while (defined($_ = $IO->getline)) { - $i--; - last if $i < 0; - $body .= '> '. $_; + my $b_h; + ## find the first part which has a defined body handle and appears + ## to be text + if (defined $entity->bodyhandle) { + $b_h = $entity->bodyhandle; + } elsif ($entity->parts) { + my @parts = $entity->parts; + while (defined(my $part = shift @parts)) { + if ($part->parts) { + push @parts,$part->parts; + } + if (defined $part->bodyhandle and + $part->effective_type =~ /text/) { + print STDERR $part->effective_type."\n"; + $b_h = $part->bodyhandle; + last; + } + } + } + if (defined $b_h) { + eval { + my $IO = $b_h->open("r"); + while (defined($_ = $IO->getline)) { + $i--; + last if $i < 0; + $body .= '> '. $_; + } + $IO->close(); + }; } - $IO->close(); $r_l{body} = $body; return \%r_l; }