# -*- perl -*- use Mail::Address; use Debbugs::MIME qw(decode_rfc1522 encode_rfc1522); use Debbugs::Packages qw(:all); use Debbugs::Common qw(:all); use Debbugs::Status qw(:all); use Carp; sub unlockreadbugmerge { local ($rv) = @_; &unfilelock if $rv >= 2; &unfilelock if $rv >= 1; } %saniarray= ('<','lt', '>','gt', '&','amp', '"','quot'); sub sani { my ($in) = @_; carp "You should be using HTML::Entities instead."; $in =~ s/([<>&"])/$saniarray{$1}/g; return $in; } sub getmailbody { my $entity = shift; my $type = $entity->effective_type; if ($type =~ m#text/(?!html|enriched)# or $type eq 'application/pgp') { return $entity->bodyhandle; } elsif ($type eq 'multipart/alternative') { # RFC 2046 says we should use the last part we recognize. for my $part (reverse $entity->parts) { my $ret = getmailbody($part); return $ret if $ret; } } else { # For other multipart types, we just pretend they're # multipart/mixed and run through in order. for my $part ($entity->parts) { my $ret = getmailbody($part); return $ret if $ret; } } return undef; } sub get_addresses { return map { $_->address() } map { Mail::Address->parse($_) } @_; } sub escapelog { my @log = @_; map { s/^([\01-\07\030])/\030$1/gm } @log; return \@log; } @severities= grep { not exists $gObsoleteSeverities{$_} } @gSeverityList; @showseverities= @severities; grep ($_= $_ eq '' ? $gDefaultSeverity : $_, @showseverities); %displayshowseverities= %gSeverityDisplay; # compatibility if (defined $gFowardList and not defined $gForwardList) { $gForwardList = $gFowardList; } 1;