From c3cef78f9f432b5a6032ce7f0022d9a0a139e2fd Mon Sep 17 00:00:00 2001 From: Darren Salt Date: Fri, 14 Sep 2007 20:28:52 +0100 Subject: Given bd, append rather than replace text - "bd", not "d". --- src/xine-utils/xmlparser.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/xine-utils/xmlparser.c b/src/xine-utils/xmlparser.c index a63ac39d6..a9fa940db 100644 --- a/src/xine-utils/xmlparser.c +++ b/src/xine-utils/xmlparser.c @@ -22,6 +22,10 @@ * */ +#ifdef XINE_COMPILE +# include "config.h" +#endif + #include #include #include @@ -226,10 +230,15 @@ static int xml_parser_get_node_internal (xml_node_t *current_node, char *root_na case (T_DATA): /* current data */ if (current_node->data) { - /* avoid a memory leak */ - free(current_node->data); + /* Append to existing text. FIXME - should use a child node */ + char *data, *decoded = lexer_decode_entities (tok); + asprintf (&data, "%s%s", current_node->data, decoded); + free (decoded); + free (current_node->data); + current_node->data = data; } - current_node->data = lexer_decode_entities(tok); + else + current_node->data = lexer_decode_entities (tok); lprintf("info: node data : %s\n", current_node->data); break; default: -- cgit v1.2.3