diff options
Diffstat (limited to 'src/treebuilder/in_foreign_content.c')
-rw-r--r-- | src/treebuilder/in_foreign_content.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/treebuilder/in_foreign_content.c b/src/treebuilder/in_foreign_content.c index 5887262..5b38839 100644 --- a/src/treebuilder/in_foreign_content.c +++ b/src/treebuilder/in_foreign_content.c @@ -376,11 +376,17 @@ bool handle_in_foreign_content(hubbub_treebuilder *treebuilder, &token->data.tag.name); if (cur_node_ns == HUBBUB_NS_HTML || - (cur_node_ns == HUBBUB_NS_MATHML && + (cur_node_ns == HUBBUB_NS_MATHML && (type != MGLYPH && type != MALIGNMARK) && (cur_node == MI || cur_node == MO || cur_node == MN || cur_node == MS || - cur_node == MTEXT))) { + cur_node == MTEXT)) || + (type == SVG && (cur_node_ns == HUBBUB_NS_MATHML && + cur_node == ANNOTATION_XML)) || + (cur_node_ns == HUBBUB_NS_SVG && + (cur_node == FOREIGNOBJECT || + cur_node == DESC || + cur_node == TITLE))) { process_as_in_secondary(treebuilder, token); } else if (type == B || type == BIG || type == BLOCKQUOTE || type == BODY || type == BR || type == CENTER || |