]> git.donarmstrong.com Git - debbugs.git/blob - scripts/errorlib.in
* Add Debbugs::Control which will eventually contain most of the
[debbugs.git] / scripts / errorlib.in
1 # -*- perl -*-
2
3 use Mail::Address;
4 use Debbugs::MIME qw(decode_rfc1522 encode_rfc1522);
5 use Debbugs::Packages qw(:all);
6 use Debbugs::Common qw(:all);
7 use Debbugs::Status qw(:all);
8 use Carp;
9
10 sub unlockreadbugmerge {
11     local ($rv) = @_;
12     &unfilelock if $rv >= 2;
13     &unfilelock if $rv >= 1;
14 }
15
16 %saniarray= ('<','lt', '>','gt', '&','amp', '"','quot');
17
18 sub sani {
19     my ($in) = @_;
20     carp "You should be using HTML::Entities instead.";
21     $in =~ s/([<>&"])/$saniarray{$1}/g;
22     return $in;
23 }
24
25 sub getmailbody {
26         my $entity = shift;
27         my $type = $entity->effective_type;
28         if ($type =~ m#text/(?!html|enriched)# or
29             $type eq 'application/pgp') {
30                 return $entity->bodyhandle;
31         } elsif ($type eq 'multipart/alternative') {
32                 # RFC 2046 says we should use the last part we recognize.
33                 for my $part (reverse $entity->parts) {
34                         my $ret = getmailbody($part);
35                         return $ret if $ret;
36                 }
37         } else {
38                 # For other multipart types, we just pretend they're
39                 # multipart/mixed and run through in order.
40                 for my $part ($entity->parts) {
41                         my $ret = getmailbody($part);
42                         return $ret if $ret;
43                 }
44         }
45         return undef;
46 }
47
48 sub get_addresses {
49         return
50             map { $_->address() }
51             map { Mail::Address->parse($_) } @_;
52 }
53
54 sub escapelog {
55         my @log = @_;
56         map { s/^([\01-\07\030])/\030$1/gm } @log;
57         return \@log;
58 }
59
60 @severities= grep { not exists $gObsoleteSeverities{$_} } @gSeverityList;
61 @showseverities= @severities;
62 grep ($_= $_ eq '' ? $gDefaultSeverity : $_, @showseverities);
63 %displayshowseverities= %gSeverityDisplay;
64
65 # compatibility
66 if (defined $gFowardList and not defined $gForwardList) {
67     $gForwardList = $gFowardList;
68 }
69
70 1;