summaryrefslogtreecommitdiff
path: root/src/treebuilder/in_table_body.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-07-07 13:03:24 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-07-07 13:03:24 +0000
commit7ba8d4327b849aee00a71bfefa17f5fcf5bb1eaa (patch)
treee875ba2c1ecdeacca4fb2964def68f8453e46211 /src/treebuilder/in_table_body.c
parentc5aab778cca9b8c579f4241ed76c5dfeac4c8553 (diff)
downloadlibhubbub-7ba8d4327b849aee00a71bfefa17f5fcf5bb1eaa.tar.gz
libhubbub-7ba8d4327b849aee00a71bfefa17f5fcf5bb1eaa.tar.bz2
A bunch of fixes to table handling
svn path=/trunk/hubbub/; revision=4525
Diffstat (limited to 'src/treebuilder/in_table_body.c')
-rw-r--r--src/treebuilder/in_table_body.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/treebuilder/in_table_body.c b/src/treebuilder/in_table_body.c
index 997c4c1..94d4fa2 100644
--- a/src/treebuilder/in_table_body.c
+++ b/src/treebuilder/in_table_body.c
@@ -50,6 +50,7 @@ static void table_clear_stack(hubbub_treebuilder *treebuilder)
* Handle the case common to some start tag and the table end tag cases.
*
* \param treebuilder The treebuilder instance
+ * \return Whether to reprocess the current token
*/
static bool table_sub_start_or_table_end(hubbub_treebuilder *treebuilder)
{
@@ -121,6 +122,7 @@ bool handle_in_table_body(hubbub_treebuilder *treebuilder,
tag.n_attributes = 0;
tag.attributes = NULL;
+ table_clear_stack(treebuilder);
insert_element(treebuilder, &tag);
treebuilder->context.mode = IN_ROW;
@@ -128,7 +130,7 @@ bool handle_in_table_body(hubbub_treebuilder *treebuilder,
} else if (type == CAPTION || type == COL ||
type == COLGROUP || type == TBODY ||
type == TFOOT || type == THEAD) {
- table_sub_start_or_table_end(treebuilder);
+ reprocess = table_sub_start_or_table_end(treebuilder);
} else {
reprocess = true;
}
@@ -161,7 +163,7 @@ bool handle_in_table_body(hubbub_treebuilder *treebuilder,
treebuilder->context.mode = IN_TABLE;
}
} else if (type == TABLE) {
- table_sub_start_or_table_end(treebuilder);
+ reprocess = table_sub_start_or_table_end(treebuilder);
} else if (type == BODY || type == CAPTION || type == COL ||
type == COLGROUP || type == HTML ||
type == TD || type == TH || type == TR) {