зеркало из https://github.com/mozilla/pjs.git
patch by Guzm��n Bras��
r=ghendricks, a=LpSolit
This commit is contained in:
Родитель
49a73ff19a
Коммит
5d5f2586ff
|
@ -1178,16 +1178,22 @@ Debug( "Reading xml", DEBUG_LEVEL );
|
||||||
local ($/);
|
local ($/);
|
||||||
$xml = <>;
|
$xml = <>;
|
||||||
|
|
||||||
# If the email was encoded (Mailer::MessageToMTA() does it when using UTF-8),
|
# If there's anything except whitespace before <?xml then we guess it's a mail
|
||||||
# we have to decode it first, else the XML parsing will fail.
|
# and MIME::Parser should parse it. Else don't.
|
||||||
my $parser = MIME::Parser->new;
|
if ($xml =~ m/\S.*<\?xml/s ) {
|
||||||
$parser->output_to_core(1);
|
|
||||||
$parser->tmp_to_core(1);
|
|
||||||
my $entity = $parser->parse_data($xml);
|
|
||||||
my $bodyhandle = $entity->bodyhandle;
|
|
||||||
$xml = $bodyhandle->as_string;
|
|
||||||
|
|
||||||
# remove everything in file before xml header (i.e. remove the mail header)
|
# If the email was encoded (Mailer::MessageToMTA() does it when using UTF-8),
|
||||||
|
# we have to decode it first, else the XML parsing will fail.
|
||||||
|
my $parser = MIME::Parser->new;
|
||||||
|
$parser->output_to_core(1);
|
||||||
|
$parser->tmp_to_core(1);
|
||||||
|
my $entity = $parser->parse_data($xml);
|
||||||
|
my $bodyhandle = $entity->bodyhandle;
|
||||||
|
$xml = $bodyhandle->as_string;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# remove everything in file before xml header
|
||||||
$xml =~ s/^.+(<\?xml version.+)$/$1/s;
|
$xml =~ s/^.+(<\?xml version.+)$/$1/s;
|
||||||
|
|
||||||
Debug( "Parsing tree", DEBUG_LEVEL );
|
Debug( "Parsing tree", DEBUG_LEVEL );
|
||||||
|
|
Загрузка…
Ссылка в новой задаче