summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2007-07-11 00:28:33 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2007-07-11 00:28:33 +0000
commit946f7833def1d1b49550063296a1a24bcbee11c3 (patch)
tree17354f0f119cbac005b84ab33d0e9a295645796a /src
parent0da3ecb98a6ab4bc6d4c255815a523dd50e6aaf1 (diff)
downloadlibdom-946f7833def1d1b49550063296a1a24bcbee11c3.tar.gz
libdom-946f7833def1d1b49550063296a1a24bcbee11c3.tar.bz2
Add CharacterData
svn path=/trunk/dom/; revision=3397
Diffstat (limited to 'src')
-rw-r--r--src/core/Makefile2
-rw-r--r--src/core/characterdata.c193
2 files changed, 194 insertions, 1 deletions
diff --git a/src/core/Makefile b/src/core/Makefile
index cede355..103e3f4 100644
--- a/src/core/Makefile
+++ b/src/core/Makefile
@@ -22,7 +22,7 @@
CFLAGS += -I$(CURDIR)
# Objects
-OBJS = attr document namednodemap node nodelist string
+OBJS = attr characterdata document namednodemap node nodelist string
.PHONY: clean debug distclean export release setup test
diff --git a/src/core/characterdata.c b/src/core/characterdata.c
new file mode 100644
index 0000000..2dfd617
--- /dev/null
+++ b/src/core/characterdata.c
@@ -0,0 +1,193 @@
+/*
+ * 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/characterdata.h>
+#include <dom/core/string.h>
+
+#include "core/node.h"
+#include "utils/utils.h"
+
+/**
+ * DOM character data node
+ */
+struct dom_characterdata {
+ struct dom_node base; /**< Base node */
+};
+
+/**
+ * Retrieve data from a character data node
+ *
+ * \param cdata Character data node to retrieve data from
+ * \param data Pointer to location to receive data
+ * \return DOM_NO_ERR.
+ *
+ * The returned string will have its reference count increased. It is
+ * the responsibility of the caller to unref the string once it has
+ * finished with it.
+ *
+ * DOM3Core states that this can raise DOMSTRING_SIZE_ERR. It will not in
+ * this implementation; dom_strings are unbounded.
+ */
+dom_exception dom_characterdata_get_data(struct dom_characterdata *cdata,
+ struct dom_string **data)
+{
+ UNUSED(cdata);
+ UNUSED(data);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Set the content of a character data node
+ *
+ * \param cdata Node to set the content of
+ * \param data New value for node
+ * \return DOM_NO_ERR on success,
+ * DOM_NO_MODIFICATION_ALLOWED_ERR if ::cdata is readonly.
+ *
+ * The new content will have its reference count increased, so the caller
+ * should unref it after the call (as the caller should have already claimed
+ * a reference on the string). The node's existing content will be unrefed.
+ */
+dom_exception dom_characterdata_set_data(struct dom_characterdata *cdata,
+ struct dom_string *data)
+{
+ UNUSED(cdata);
+ UNUSED(data);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Get the length (in characters) of a character data node's content
+ *
+ * \param cdata Node to read content length of
+ * \param length Pointer to location to receive character length of content
+ * \return DOM_NO_ERR.
+ */
+dom_exception dom_characterdata_get_length(struct dom_characterdata *cdata,
+ unsigned long *length)
+{
+ UNUSED(cdata);
+ UNUSED(length);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Extract a range of data from a character data node
+ *
+ * \param cdata The node to extract data from
+ * \param offset The character offset of substring to extract
+ * \param count The number of characters to extract
+ * \param data Pointer to location to receive substring
+ * \return DOM_NO_ERR on success,
+ * DOM_INDEX_SIZE_ERR if ::offset is greater than the number of
+ * characters in ::cdata.
+ *
+ * The returned string will have its reference count increased. It is
+ * the responsibility of the caller to unref the string once it has
+ * finished with it.
+ *
+ * DOM3Core states that this can raise DOMSTRING_SIZE_ERR. It will not in
+ * this implementation; dom_strings are unbounded.
+ */
+dom_exception dom_characterdata_substring_data(
+ struct dom_characterdata *cdata, unsigned long offset,
+ unsigned long count, struct dom_string **data)
+{
+ UNUSED(cdata);
+ UNUSED(offset);
+ UNUSED(count);
+ UNUSED(data);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Append data to the end of a character data node's content
+ *
+ * \param cdata The node to append data to
+ * \param data The data to append
+ * \return DOM_NO_ERR on success,
+ * DOM_NO_MODIFICATION_ALLOWED_ERR if ::cdata is readonly.
+ */
+dom_exception dom_characterdata_append_data(struct dom_characterdata *cdata,
+ struct dom_string *data)
+{
+ UNUSED(cdata);
+ UNUSED(data);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Insert data into a character data node's content
+ *
+ * \param cdata The node to insert into
+ * \param offset The character offset to insert at
+ * \param data The data to insert
+ * \return DOM_NO_ERR on success,
+ * DOM_INDEX_SIZE_ERR if ::offset is greater than the
+ * number of characters in ::cdata,
+ * DOM_NO_MODIFICATION_ALLOWED_ERR if ::cdata is readonly.
+ */
+dom_exception dom_characterdata_insert_data(struct dom_characterdata *cdata,
+ unsigned long offset, struct dom_string *data)
+{
+ UNUSED(cdata);
+ UNUSED(offset);
+ UNUSED(data);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Delete data from a character data node's content
+ *
+ * \param cdata The node to delete from
+ * \param offset The character offset to start deletion from
+ * \param count The number of characters to delete
+ * \return DOM_NO_ERR on success,
+ * DOM_INDEX_SIZE_ERR if ::offset is greater than the
+ * number of characters in ::cdata,
+ * DOM_NO_MODIFICATION_ALLOWED_ERR if ::cdata is readonly.
+ */
+dom_exception dom_characterdata_delete_data(struct dom_characterdata *cdata,
+ unsigned long offset, unsigned long count)
+{
+ UNUSED(cdata);
+ UNUSED(offset);
+ UNUSED(count);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Replace a section of a character data node's content
+ *
+ * \param cdata The node to modify
+ * \param offset The character offset of the sequence to replace
+ * \param count The number of characters to replace
+ * \param data The replacement data
+ * \return DOM_NO_ERR on success,
+ * DOM_INDEX_SIZE_ERR if ::offset is greater than the
+ * number of characters in ::cdata,
+ * DOM_NO_MODIFICATION_ALLOWED_ERR if ::cdata is readonly.
+ */
+dom_exception dom_characterdata_replace_data(struct dom_characterdata *cdata,
+ unsigned long offset, unsigned long count,
+ struct dom_string *data)
+{
+ UNUSED(cdata);
+ UNUSED(offset);
+ UNUSED(count);
+ UNUSED(data);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+