summaryrefslogtreecommitdiff
path: root/src/treebuilder/treebuilder.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/treebuilder/treebuilder.c')
-rw-r--r--src/treebuilder/treebuilder.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index 2b256b4..f6270c1 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -795,18 +795,20 @@ void insert_element_no_push(hubbub_treebuilder *treebuilder,
* Close implied end tags
*
* \param treebuilder The treebuilder instance
- * \param except Tag type to exclude from processing [DD,DT,LI,P],
- * or UNKNOWN to exclude nothing
+ * \param except Tag type to exclude from processing [DD,DT,LI,OPTION,
+ * OPTGROUP,P,RP,RT], UNKNOWN to exclude nothing
*/
-void close_implied_end_tags(hubbub_treebuilder *treebuilder,
+void close_implied_end_tags(hubbub_treebuilder *treebuilder,
element_type except)
{
element_type type;
type = treebuilder->context.element_stack[
treebuilder->context.current_node].type;
-
- while (type == DD || type == DT || type == LI || type == P) {
+
+ while (type == DD || type == DT || type == LI || type == OPTION ||
+ type == OPTGROUP || type == P || type == RP ||
+ type == RT) {
element_type otype;
void *node;