From a036dfb0d375b0c8c7dd014ad224f0980b09793c Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 11 Jul 2007 01:04:21 +0000 Subject: Make CharacterData struct public (within library) Add Text. svn path=/trunk/dom/; revision=3398 --- src/core/Makefile | 2 +- src/core/characterdata.c | 9 +---- src/core/characterdata.h | 20 ++++++++++ src/core/text.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 120 insertions(+), 9 deletions(-) create mode 100644 src/core/characterdata.h create mode 100644 src/core/text.c (limited to 'src') diff --git a/src/core/Makefile b/src/core/Makefile index 103e3f4..e30fd05 100644 --- a/src/core/Makefile +++ b/src/core/Makefile @@ -22,7 +22,7 @@ CFLAGS += -I$(CURDIR) # Objects -OBJS = attr characterdata document namednodemap node nodelist string +OBJS = attr characterdata document namednodemap node nodelist string text .PHONY: clean debug distclean export release setup test diff --git a/src/core/characterdata.c b/src/core/characterdata.c index 2dfd617..bfcf6a1 100644 --- a/src/core/characterdata.c +++ b/src/core/characterdata.c @@ -8,16 +8,9 @@ #include #include -#include "core/node.h" +#include "core/characterdata.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 * diff --git a/src/core/characterdata.h b/src/core/characterdata.h new file mode 100644 index 0000000..d6809c3 --- /dev/null +++ b/src/core/characterdata.h @@ -0,0 +1,20 @@ +/* + * This file is part of libdom. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell + */ + +#ifndef dom_internal_core_characterdata_h_ +#define dom_internal_core_characterdata_h_ + +#include "core/node.h" + +/** + * DOM character data node + */ +struct dom_characterdata { + struct dom_node base; /**< Base node */ +}; + +#endif 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 + */ + +#include +#include + +#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; +} + -- cgit v1.2.3