summaryrefslogtreecommitdiff
path: root/src/treebuilder
diff options
context:
space:
mode:
authorAndrew Sidwell <andy@entai.co.uk>2008-07-11 19:42:44 +0000
committerAndrew Sidwell <andy@entai.co.uk>2008-07-11 19:42:44 +0000
commit01ea0b7a856988910abe117dd620aef214f2eeb6 (patch)
tree0c66fc575eb51bf66373c7204d7514d284973bff /src/treebuilder
parentbae0fbd4bd7a485a9f086f498e5c16aa0083f45e (diff)
downloadlibhubbub-01ea0b7a856988910abe117dd620aef214f2eeb6.tar.gz
libhubbub-01ea0b7a856988910abe117dd620aef214f2eeb6.tar.bz2
Fix the "reset the insertion mode" steps.
svn path=/trunk/hubbub/; revision=4622
Diffstat (limited to 'src/treebuilder')
-rw-r--r--src/treebuilder/treebuilder.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index 217a3ca..848f9ab 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -874,6 +874,12 @@ void reset_insertion_mode(hubbub_treebuilder *treebuilder)
/** \todo fragment parsing algorithm */
for (node = treebuilder->context.current_node; node > 0; node--) {
+ if (stack[node].ns != HUBBUB_NS_HTML) {
+ treebuilder->context.mode = IN_FOREIGN_CONTENT;
+ treebuilder->context.second_mode = IN_BODY;
+ break;
+ }
+
switch (stack[node].type) {
case SELECT:
/* fragment case */