diff options
author | Andrew Sidwell <andy@entai.co.uk> | 2008-07-11 13:43:30 +0000 |
---|---|---|
committer | Andrew Sidwell <andy@entai.co.uk> | 2008-07-11 13:43:30 +0000 |
commit | 4332ec862291abce4f08dccbacc269e47405148d (patch) | |
tree | 02871f23e16e71f5b4cc0e994efd2d3e16303113 /src | |
parent | 76cfea6e44fd2ea8334ef3039cb2934127f848d0 (diff) | |
download | libhubbub-4332ec862291abce4f08dccbacc269e47405148d.tar.gz libhubbub-4332ec862291abce4f08dccbacc269e47405148d.tar.bz2 |
Fix <script> handling in "after head".
svn path=/trunk/hubbub/; revision=4593
Diffstat (limited to 'src')
-rw-r--r-- | src/treebuilder/script_collect.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/treebuilder/script_collect.c b/src/treebuilder/script_collect.c index 0ec9b12..e55b17c 100644 --- a/src/treebuilder/script_collect.c +++ b/src/treebuilder/script_collect.c @@ -93,6 +93,17 @@ bool handle_script_collect_characters(hubbub_treebuilder *treebuilder, /** \todo insertion point manipulation */ + /* Scripts in "after head" should be inserted into <head> */ + /* See 8.2.5.9 The "after head" insertion mode */ + if (treebuilder->context.collect.mode == AFTER_HEAD) { + if (!element_stack_push(treebuilder, + HUBBUB_NS_HTML, + HEAD, + treebuilder->context.head_element)) { + /** \todo errors */ + } + } + /* Append script node to current node */ success = treebuilder->tree_handler->append_child( treebuilder->tree_handler->ctx, @@ -103,6 +114,17 @@ bool handle_script_collect_characters(hubbub_treebuilder *treebuilder, /** \todo errors */ } + if (treebuilder->context.collect.mode == AFTER_HEAD) { + hubbub_ns ns; + element_type otype; + void *node; + + if (!element_stack_pop(treebuilder, &ns, &otype, + &node)) { + /** \todo errors */ + } + } + /** \todo restore insertion point */ treebuilder->tree_handler->unref_node( |