summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Sidwell <andy@entai.co.uk>2008-06-25 11:41:33 +0000
committerAndrew Sidwell <andy@entai.co.uk>2008-06-25 11:41:33 +0000
commit97352e4f29d505545e547af868f5851345d4140c (patch)
treebf1c1415d894efdf01712e9c70f5c9c0b1f2ba88
parent6ce05dca28507467ad92302dad9373dc4e82fd92 (diff)
downloadlibhubbub-97352e4f29d505545e547af868f5851345d4140c.tar.gz
libhubbub-97352e4f29d505545e547af868f5851345d4140c.tar.bz2
Add a utility current_node() function which returns the current node.
svn path=/trunk/hubbub/; revision=4445
-rw-r--r--src/treebuilder/internal.h1
-rw-r--r--src/treebuilder/treebuilder.c14
2 files changed, 15 insertions, 0 deletions
diff --git a/src/treebuilder/internal.h b/src/treebuilder/internal.h
index a4eed84..184dd61 100644
--- a/src/treebuilder/internal.h
+++ b/src/treebuilder/internal.h
@@ -141,6 +141,7 @@ bool element_stack_push(hubbub_treebuilder *treebuilder,
element_type type, void *node);
bool element_stack_pop(hubbub_treebuilder *treebuilder,
element_type *type, void **node);
+element_type current_node(hubbub_treebuilder *treebuilder);
bool formatting_list_append(hubbub_treebuilder *treebuilder,
element_type type, void *node, uint32_t stack_index);
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index f6270c1..e29ecab 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -1101,6 +1101,20 @@ bool element_stack_pop(hubbub_treebuilder *treebuilder,
}
/**
+ * Peek at the top element of the element stack.
+ *
+ * \param treebuilder Treebuilder instance
+ * \return Element type on the top of the stack
+ */
+element_type current_node(hubbub_treebuilder *treebuilder)
+{
+ return treebuilder->context.element_stack
+ [treebuilder->context.current_node].type;
+}
+
+
+
+/**
* Append an element to the end of the list of active formatting elements
*
* \param treebuilder Treebuilder instance containing list