diff options
-rwxr-xr-x | parse-trac | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -24,6 +24,7 @@ $project =~ m/^([a-zA-Z-]+(\.[a-zA-Z-]+)*)+$/; $project = $1; die ("Project is not a nice name.\n") unless defined $project; +my $is_base64 = 0; open (MAIL, $ARGV[1]) || die ("Cannot open $ARGV[1]: $!\n"); my @mail = <MAIL>; @@ -63,10 +64,17 @@ while (defined($line = shift @headers)) { $url =~ s/^https:/http:/; } elsif ($line =~ m/^X-Trac-Ticket-ID:\s*(.*)/i) { $ticketid = $1; + } elsif ($line =~ m/^Content-Transfer-Encoding: base64$/s) { + $is_base64 = 1; } elsif ($line =~ m/^$/) { last; } }; + +my $body = join '', @mail; +$body = decode_base64($body) if ($is_base64); +@mail = split(/\n/, $body); + my $first_line = shift @mail; chomp $first_line; shift @mail; |