summaryrefslogtreecommitdiffstats
path: root/lasso/xml/misc_text_node.c
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2007-05-02 11:08:23 +0000
committerFrederic Peters <fpeters@entrouvert.com>2007-05-02 11:08:23 +0000
commit7ec330821df2c6d986ba6e2f70edf5d38dce1dca (patch)
tree98dd6fb2bd512f9ec764896fd79a20530c95d5ca /lasso/xml/misc_text_node.c
parent63bab632c59fe5a0a4ae31e3e1035f58c1bcfe91 (diff)
downloadlasso-7ec330821df2c6d986ba6e2f70edf5d38dce1dca.tar.gz
lasso-7ec330821df2c6d986ba6e2f70edf5d38dce1dca.tar.xz
lasso-7ec330821df2c6d986ba6e2f70edf5d38dce1dca.zip
SNIPPET_LIST_NODES can now host LassoMiscTextNode, also useful now to directly
embed a text element (instead of a node with a text element as content)
Diffstat (limited to 'lasso/xml/misc_text_node.c')
-rw-r--r--lasso/xml/misc_text_node.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/lasso/xml/misc_text_node.c b/lasso/xml/misc_text_node.c
index 80afc3a4..7b72f82b 100644
--- a/lasso/xml/misc_text_node.c
+++ b/lasso/xml/misc_text_node.c
@@ -56,6 +56,10 @@ get_xmlNode(LassoNode *node, gboolean lasso_dump)
{
xmlNode *xmlnode;
xmlNs *ns;
+
+ if (LASSO_MISC_TEXT_NODE(node)->text_child) {
+ return xmlNewText((xmlChar*)(LASSO_MISC_TEXT_NODE(node)->content));
+ }
xmlnode = parent_class->get_xmlNode(node, lasso_dump);
xmlNodeSetName(xmlnode, (xmlChar*)LASSO_MISC_TEXT_NODE(node)->name);
@@ -72,6 +76,12 @@ init_from_xml(LassoNode *node, xmlNode *xmlnode)
LassoMiscTextNode *n = LASSO_MISC_TEXT_NODE(node);
int rc;
+ if (xmlnode->type == XML_TEXT_NODE) {
+ n->text_child = TRUE;
+ n->content = g_strdup((char*)(xmlnode->content));
+ return 0;
+ }
+
rc = parent_class->init_from_xml(node, xmlnode);
if (rc) return rc;
@@ -107,6 +117,7 @@ instance_init(LassoMiscTextNode *node)
node->name = NULL;
node->ns_href = NULL;
node->ns_prefix = NULL;
+ node->text_child = FALSE;
}
static void