summaryrefslogtreecommitdiff
path: root/src/treebuilder/in_foreign_content.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/treebuilder/in_foreign_content.c')
-rw-r--r--src/treebuilder/in_foreign_content.c10
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 ||