summaryrefslogtreecommitdiff
path: root/src/treebuilder/treebuilder.c
diff options
context:
space:
mode:
authorRupinder Singh Khokhar <rsk1coder99@gmail.com>2014-06-26 20:59:16 +0530
committerRupinder Singh Khokhar <rsk1coder99@gmail.com>2014-08-01 21:44:23 +0530
commit46802b46290a965d5828bb2a3402bba2393b178f (patch)
treed80abba3a552ecb638192235f4e1a1cd36dc904c /src/treebuilder/treebuilder.c
parent7692c69e500284e9ace13b486af8d5e6f1f4a9de (diff)
downloadlibhubbub-46802b46290a965d5828bb2a3402bba2393b178f.tar.gz
libhubbub-46802b46290a965d5828bb2a3402bba2393b178f.tar.bz2
Random rumblings-- unclean commit
Diffstat (limited to 'src/treebuilder/treebuilder.c')
-rw-r--r--src/treebuilder/treebuilder.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index a6a4b43..2358ff9 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -25,10 +25,12 @@ static const struct {
element_type type;
} name_type_map[] = {
{ S("address"), ADDRESS }, { S("area"), AREA },
+ { S("b"), B },
{ S("base"), BASE }, { S("basefont"), BASEFONT },
{ S("bgsound"), BGSOUND }, { S("blockquote"), BLOCKQUOTE },
{ S("body"), BODY }, { S("br"), BR },
{ S("center"), CENTER }, { S("col"), COL },
+ { S("code"), CODE },
{ S("colgroup"), COLGROUP }, { S("dd"), DD },
{ S("dir"), DIR }, { S("div"), DIV },
{ S("dl"), DL }, { S("dt"), DT },
@@ -519,13 +521,22 @@ uint32_t element_in_scope(hubbub_treebuilder *treebuilder,
break;
/* The list of element types given in the spec here are the
- * scoping elements excluding TABLE and HTML. TABLE is handled
+ * scoping elements excluding TABLE and HTML and BUTTON. TABLE is handled
* in the previous conditional and HTML should only occur
* as the first node in the stack, which is never processed
* in this loop. */
- if (!in_table && (is_scoping_element(node_type) ||
- (node_type == FOREIGNOBJECT &&
- node_ns == HUBBUB_NS_SVG))) {
+ if (!in_table && node_type != BUTTON &&
+ (is_scoping_element(node_type) ||
+ (node_ns == HUBBUB_NS_SVG && (
+ node_type == FOREIGNOBJECT ||
+ node_type == DESC ||
+ node_type == TITLE)) ||
+ (node_ns ==HUBBUB_NS_MATHML && (
+ node_type == MI ||
+ node_type == MO ||
+ node_type == MN ||
+ node_type == MS ||
+ node_type == MTEXT)))) {
break;
}
}
@@ -1389,7 +1400,6 @@ hubbub_error formatting_list_remove(hubbub_treebuilder *treebuilder,
*type = entry->details.type;
*node = entry->details.node;
*stack_index = entry->stack_index;
-
if (entry->prev == NULL)
treebuilder->context.formatting_list = entry->next;
else