summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@netsurf-browser.org>2012-03-24 16:45:24 +0000
committerDaniel Silverstone <dsilvers@netsurf-browser.org>2012-03-24 16:45:24 +0000
commitefd1b61ffdbb92f6557e960a4590cd0c403f58df (patch)
tree137513aa6029db0eca88accfb1646c24590fc2ae /src
parent4b496cb8ca478669f875c97941f5fcbb801ae474 (diff)
downloadlibdom-efd1b61ffdbb92f6557e960a4590cd0c403f58df.tar.gz
libdom-efd1b61ffdbb92f6557e960a4590cd0c403f58df.tar.bz2
get_text_content working for all textual nodes modulo processing instructions
svn path=/trunk/libdom/; revision=13601
Diffstat (limited to 'src')
-rw-r--r--src/core/characterdata.c16
-rw-r--r--src/core/characterdata.h45
-rw-r--r--src/core/text.c2
3 files changed, 61 insertions, 2 deletions
diff --git a/src/core/characterdata.c b/src/core/characterdata.c
index ff89401..79b5fbe 100644
--- a/src/core/characterdata.c
+++ b/src/core/characterdata.c
@@ -26,7 +26,7 @@ struct dom_characterdata_vtable characterdata_vtable = {
{
DOM_NODE_EVENT_TARGET_VTABLE
},
- DOM_NODE_VTABLE
+ DOM_NODE_VTABLE_CHARACTERDATA
},
DOM_CHARACTERDATA_VTABLE
};
@@ -452,7 +452,21 @@ dom_exception _dom_characterdata_replace_data(struct dom_characterdata *cdata,
return _dom_dispatch_subtree_modified_event(doc, c->parent, &success);
}
+dom_exception _dom_characterdata_get_text_content(dom_node_internal *node,
+ dom_string **result)
+{
+ dom_characterdata *cdata = (dom_characterdata *)node;
+
+ return dom_characterdata_get_data(cdata, result);
+}
+dom_exception _dom_characterdata_set_text_content(dom_node_internal *node,
+ dom_string *content)
+{
+ dom_characterdata *cdata = (dom_characterdata *)node;
+
+ return dom_characterdata_set_data(cdata, content);
+}
/*----------------------------------------------------------------------*/
diff --git a/src/core/characterdata.h b/src/core/characterdata.h
index 7b15030..cd1be0a 100644
--- a/src/core/characterdata.h
+++ b/src/core/characterdata.h
@@ -47,6 +47,12 @@ dom_exception _dom_characterdata_delete_data(struct dom_characterdata *cdata,
dom_exception _dom_characterdata_replace_data(struct dom_characterdata *cdata,
unsigned long offset, unsigned long count,
dom_string *data);
+dom_exception _dom_characterdata_get_text_content(
+ dom_node_internal *node,
+ dom_string **result);
+dom_exception _dom_characterdata_set_text_content(
+ dom_node_internal *node,
+ dom_string *content);
#define DOM_CHARACTERDATA_VTABLE \
_dom_characterdata_get_data, \
@@ -58,6 +64,45 @@ dom_exception _dom_characterdata_replace_data(struct dom_characterdata *cdata,
_dom_characterdata_delete_data, \
_dom_characterdata_replace_data
+#define DOM_NODE_VTABLE_CHARACTERDATA \
+ _dom_node_get_node_name, \
+ _dom_node_get_node_value, \
+ _dom_node_set_node_value, \
+ _dom_node_get_node_type, \
+ _dom_node_get_parent_node, \
+ _dom_node_get_child_nodes, \
+ _dom_node_get_first_child, \
+ _dom_node_get_last_child, \
+ _dom_node_get_previous_sibling, \
+ _dom_node_get_next_sibling, \
+ _dom_node_get_attributes, \
+ _dom_node_get_owner_document, \
+ _dom_node_insert_before, \
+ _dom_node_replace_child, \
+ _dom_node_remove_child, \
+ _dom_node_append_child, \
+ _dom_node_has_child_nodes, \
+ _dom_node_clone_node, \
+ _dom_node_normalize, \
+ _dom_node_is_supported, \
+ _dom_node_get_namespace, \
+ _dom_node_get_prefix, \
+ _dom_node_set_prefix, \
+ _dom_node_get_local_name, \
+ _dom_node_has_attributes, \
+ _dom_node_get_base, \
+ _dom_node_compare_document_position, \
+ _dom_characterdata_get_text_content, /* override */ \
+ _dom_characterdata_set_text_content, /* override */ \
+ _dom_node_is_same, \
+ _dom_node_lookup_prefix, \
+ _dom_node_is_default_namespace, \
+ _dom_node_lookup_namespace, \
+ _dom_node_is_equal, \
+ _dom_node_get_feature, \
+ _dom_node_set_user_data, \
+ _dom_node_get_user_data
+
/* Following comes the protected vtable
*
* Only the _copy function can be used by sub-class of this.
diff --git a/src/core/text.c b/src/core/text.c
index 1a5adaa..532ee13 100644
--- a/src/core/text.c
+++ b/src/core/text.c
@@ -26,7 +26,7 @@ struct dom_text_vtable text_vtable = {
{
DOM_NODE_EVENT_TARGET_VTABLE,
},
- DOM_NODE_VTABLE
+ DOM_NODE_VTABLE_CHARACTERDATA
},
DOM_CHARACTERDATA_VTABLE
},