summaryrefslogtreecommitdiff
path: root/src/treebuilder/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/treebuilder/internal.h')
-rw-r--r--src/treebuilder/internal.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/treebuilder/internal.h b/src/treebuilder/internal.h
index 0649f25..823ed01 100644
--- a/src/treebuilder/internal.h
+++ b/src/treebuilder/internal.h
@@ -15,19 +15,19 @@ typedef enum
/* Special */
ADDRESS, AREA, ARTICLE, ASIDE, BASE, BASEFONT, BGSOUND, BLOCKQUOTE,
BODY, BR, CENTER, COL, COLGROUP, COMMAND, DATAGRID, DD, DETAILS,
- DIALOG, DIR, DIV, DL, DT, EMBED, EVENTSOURCE, FIELDSET, FIGURE,
- FOOTER, FORM, FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, HEAD, HEADER,
- HR, IFRAME, IMAGE, IMG, INPUT, ISINDEX, LI, LINK, LISTING, MENU, META,
- NAV, NOEMBED, NOFRAMES, NOSCRIPT, OL, OPTGROUP, OPTION, P, PARAM,
- PLAINTEXT, PRE, SCRIPT, SECTION, SELECT, SPACER, STYLE, TBODY,
- TEXTAREA, TFOOT, THEAD, TITLE, TR, UL, WBR,
+ DIALOG, DIR, DIV, DL, DT, EMBED, FIELDSET, FIGURE, FOOTER, FORM, FRAME,
+ FRAMESET, H1, H2, H3, H4, H5, H6, HEAD, HEADER, HR, IFRAME, IMAGE, IMG,
+ INPUT, ISINDEX, LI, LINK, LISTING, MENU, META, NAV, NOEMBED, NOFRAMES,
+ NOSCRIPT, OL, OPTGROUP, OPTION, P, PARAM, PLAINTEXT, PRE, SCRIPT,
+ SECTION, SELECT, SPACER, STYLE, TBODY, TEXTAREA, TFOOT, THEAD, TITLE,
+ TR, UL, WBR,
/* Scoping */
APPLET, BUTTON, CAPTION, HTML, MARQUEE, OBJECT, TABLE, TD, TH,
/* Formatting */
- A, B, BIG, EM, FONT, I, NOBR, S, SMALL, STRIKE, STRONG, TT, U,
+ A, B, BIG, CODE, EM, FONT, I, NOBR, S, SMALL, STRIKE, STRONG, TT, U,
/* Phrasing */
/**< \todo Enumerate phrasing elements */
- CODE, LABEL, RP, RT, RUBY, SPAN, SUB, SUP, VAR, XMP,
+ LABEL, OUTPUT, RP, RT, RUBY, SPAN, SUB, SUP, VAR, XMP,
/* MathML */
MATH, MGLYPH, MALIGNMARK, MI, MO, MN, MS, MTEXT, ANNOTATION_XML,
/* SVG */
@@ -96,7 +96,6 @@ typedef struct hubbub_treebuilder_context
struct {
insertion_mode mode; /**< Insertion mode to return to */
- void *node; /**< Node to attach Text child to */
element_type type; /**< Type of node */
} collect; /**< Context for character collecting */
@@ -107,6 +106,8 @@ typedef struct hubbub_treebuilder_context
bool in_table_foster; /**< Whether nodes that would be
* inserted into the current node should
* be foster parented */
+
+ bool frameset_ok; /**< Whether to process a frameset */
} hubbub_treebuilder_context;
/**
@@ -144,9 +145,7 @@ void reconstruct_active_formatting_list(hubbub_treebuilder *treebuilder);
void clear_active_formatting_list_to_marker(
hubbub_treebuilder *treebuilder);
void insert_element(hubbub_treebuilder *treebuilder,
- const hubbub_tag *tag_name);
-void insert_element_no_push(hubbub_treebuilder *treebuilder,
- const hubbub_tag *tag_name);
+ const hubbub_tag *tag_name, bool push);
void close_implied_end_tags(hubbub_treebuilder *treebuilder,
element_type except);
void reset_insertion_mode(hubbub_treebuilder *treebuilder);
@@ -167,6 +166,8 @@ bool element_stack_pop(hubbub_treebuilder *treebuilder,
hubbub_ns *ns, element_type *type, void **node);
bool element_stack_pop_until(hubbub_treebuilder *treebuilder,
element_type type);
+bool element_stack_remove(hubbub_treebuilder *treebuilder, uint32_t index,
+ hubbub_ns *ns, element_type *type, void **removed);
uint32_t current_table(hubbub_treebuilder *treebuilder);
element_type current_node(hubbub_treebuilder *treebuilder);
element_type prev_node(hubbub_treebuilder *treebuilder);
@@ -190,6 +191,7 @@ bool formatting_list_replace(hubbub_treebuilder *treebuilder,
uint32_t *ostack_index);
/* in_foreign_content.c */
+void adjust_mathml_attributes(hubbub_treebuilder *treebuilder, hubbub_tag *tag);
void adjust_svg_attributes(hubbub_treebuilder *treebuilder,
hubbub_tag *tag);
void adjust_svg_tagname(hubbub_treebuilder *treebuilder,