From e9bbed229968ee8f4575846d9be0213ee88dcedb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20R=C3=A9mond?= Date: Mon, 30 Jul 2007 10:06:49 +0000 Subject: * src/xml_stream.erl: Group CDATA on a single xmlcdata node (splitting is not relevant as dependant on TCP/IP packet fragmentation) (EJAB-292). SVN Revision: 839 --- src/xml_stream.erl | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/xml_stream.erl b/src/xml_stream.erl index c923b6ae7..7dedbeb14 100644 --- a/src/xml_stream.erl +++ b/src/xml_stream.erl @@ -59,6 +59,15 @@ process_data(CallbackPid, Stack, Data) -> case Stack of [El] -> [El]; + %% Merge CDATA nodes if they are contiguous + %% This does not change the semantic: the split in + %% several CDATA nodes depends on the TCP/IP packet + %% fragmentation + [{xmlelement, Name, Attrs, + [{xmlcdata, PreviousCData}|Els]} | Tail] -> + [{xmlelement, Name, Attrs, + [{xmlcdata, concat_binary([PreviousCData, CData])} | Els]} | Tail]; + %% No previous CDATA [{xmlelement, Name, Attrs, Els} | Tail] -> [{xmlelement, Name, Attrs, [{xmlcdata, CData} | Els]} | Tail]; -- cgit v1.2.3