summaryrefslogtreecommitdiff
path: root/src/core/text.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2007-07-11 01:04:21 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2007-07-11 01:04:21 +0000
commitef92357d79dc3caccab3c5b4e3fe31eb411bc22a (patch)
tree4795ba27da0c5b7232a97ee34695cbe7b61ca513 /src/core/text.c
parentfceaaf7293181aa6f52422264961721f91173f80 (diff)
downloadlibdom-ef92357d79dc3caccab3c5b4e3fe31eb411bc22a.tar.gz
libdom-ef92357d79dc3caccab3c5b4e3fe31eb411bc22a.tar.bz2
Make CharacterData struct public (within library)
Add Text. svn path=/trunk/dom/; revision=3398
Diffstat (limited to 'src/core/text.c')
-rw-r--r--src/core/text.c98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/core/text.c b/src/core/text.c
new file mode 100644
index 0000000..dd85bfe
--- /dev/null
+++ b/src/core/text.c
@@ -0,0 +1,98 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#include <dom/core/string.h>
+#include <dom/core/text.h>
+
+#include "core/characterdata.h"
+#include "utils/utils.h"
+
+struct dom_text {
+ struct dom_characterdata base; /**< Base node */
+
+ bool element_content_whitespace; /**< This node is element
+ * content whitespace */
+};
+
+/**
+ * Split a text node at a given character offset
+ *
+ * \param text The node to split
+ * \param offset Character offset to split at
+ * \param result Pointer to location to receive new node
+ * \return DOM_NO_ERR on success,
+ * DOM_INDEX_SIZE_ERR if ::offset is greater than the
+ * number of characters in ::text,
+ * DOM_NO_MODIFICATION_ALLOWED_ERR if ::text is readonly.
+ *
+ * The returned node will be referenced. The client should unref the node
+ * once it has finished with it.
+ */
+dom_exception dom_text_split_text(struct dom_text *text,
+ unsigned long offset, struct dom_text **result)
+{
+ UNUSED(text);
+ UNUSED(offset);
+ UNUSED(result);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Determine if a text node contains element content whitespace
+ *
+ * \param text The node to consider
+ * \param result Pointer to location to receive result
+ * \return DOM_NO_ERR.
+ */
+dom_exception dom_text_get_is_element_content_whitespace(
+ struct dom_text *text, bool *result)
+{
+ *result = text->element_content_whitespace;
+
+ return DOM_NO_ERR;
+}
+
+/**
+ * Retrieve all text in Text nodes logically adjacent to a Text node
+ *
+ * \param text Text node to consider
+ * \param result Pointer to location to receive result
+ * \return DOM_NO_ERR.
+ */
+dom_exception dom_text_get_whole_text(struct dom_text *text,
+ struct dom_string **result)
+{
+ UNUSED(text);
+ UNUSED(result);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Replace the text of a Text node and all logically adjacent Text nodes
+ *
+ * \param text Text node to consider
+ * \param content Replacement content
+ * \param result Pointer to location to receive Text node
+ * \return DOM_NO_ERR on success,
+ * DOM_NO_MODIFICATION_ALLOWED_ERR if one of the Text nodes being
+ * replaced is readonly.
+ *
+ * The returned node will be referenced. The client should unref the node
+ * once it has finished with it.
+ */
+dom_exception dom_text_replace_whole_text(struct dom_text *text,
+ struct dom_string *content, struct dom_text **result)
+{
+ UNUSED(text);
+ UNUSED(content);
+ UNUSED(result);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+