summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/treebuilder/in_head.c64
-rw-r--r--src/treebuilder/internal.h4
-rw-r--r--src/treebuilder/treebuilder.c61
3 files changed, 65 insertions, 64 deletions
diff --git a/src/treebuilder/in_head.c b/src/treebuilder/in_head.c
index 4163343..f5fb099 100644
--- a/src/treebuilder/in_head.c
+++ b/src/treebuilder/in_head.c
@@ -15,6 +15,70 @@
/**
+ * Process a <base>, <link>, or <meta> start tag as if in "in head"
+ *
+ * \param treebuilder The treebuilder instance
+ * \param token The token to process
+ * \param type The type of element (BASE, LINK, or META)
+ */
+static void process_base_link_meta_in_head(hubbub_treebuilder *treebuilder,
+ const hubbub_token *token, element_type type)
+{
+ insert_element_no_push(treebuilder, &token->data.tag);
+
+ if (type == META) {
+ /** \todo charset extraction */
+ }
+}
+
+
+/**
+ * Process a <script> start tag as if in "in head"
+ *
+ * \param treebuilder The treebuilder instance
+ * \param token The token to process
+ */
+static void process_script_in_head(hubbub_treebuilder *treebuilder,
+ const hubbub_token *token)
+{
+ int success;
+ void *script;
+ hubbub_tokeniser_optparams params;
+
+ success = treebuilder->tree_handler->create_element(
+ treebuilder->tree_handler->ctx,
+ &token->data.tag, &script);
+ if (success != 0) {
+ /** \todo errors */
+ }
+
+ /** \todo mark script as parser-inserted */
+
+ /* It would be nice to be able to re-use the generic
+ * rcdata character collector here. Unfortunately, we
+ * can't as we need to do special processing after the
+ * script data has been collected, so we use an almost
+ * identical insertion mode which does the right magic
+ * at the end. */
+ params.content_model.model = HUBBUB_CONTENT_MODEL_CDATA;
+ hubbub_tokeniser_setopt(treebuilder->tokeniser,
+ HUBBUB_TOKENISER_CONTENT_MODEL,
+ &params);
+
+ treebuilder->context.collect.mode = treebuilder->context.mode;
+ treebuilder->context.collect.node = script;
+ treebuilder->context.collect.type = SCRIPT;
+ treebuilder->context.collect.string.data.off = 0;
+ treebuilder->context.collect.string.len = 0;
+
+ treebuilder->context.mode = SCRIPT_COLLECT_CHARACTERS;
+}
+
+
+
+
+
+/**
* Handle token in "in head" insertion mode
*
* \param treebuilder The treebuilder instance
diff --git a/src/treebuilder/internal.h b/src/treebuilder/internal.h
index 7d3d672..ba69660 100644
--- a/src/treebuilder/internal.h
+++ b/src/treebuilder/internal.h
@@ -109,10 +109,6 @@ void process_comment_append(hubbub_treebuilder *treebuilder,
const hubbub_token *token, void *parent);
void parse_generic_rcdata(hubbub_treebuilder *treebuilder,
const hubbub_token *token, bool rcdata);
-void process_base_link_meta_in_head(hubbub_treebuilder *treebuilder,
- const hubbub_token *token, element_type type);
-void process_script_in_head(hubbub_treebuilder *treebuilder,
- const hubbub_token *token);
uint32_t element_in_scope(hubbub_treebuilder *treebuilder,
element_type type, bool in_table);
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index 35768fc..2ca2132 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -505,65 +505,6 @@ void parse_generic_rcdata(hubbub_treebuilder *treebuilder,
}
/**
- * Process a <base>, <link>, or <meta> start tag as if in "in head"
- *
- * \param treebuilder The treebuilder instance
- * \param token The token to process
- * \param type The type of element (BASE, LINK, or META)
- */
-void process_base_link_meta_in_head(hubbub_treebuilder *treebuilder,
- const hubbub_token *token, element_type type)
-{
- insert_element_no_push(treebuilder, &token->data.tag);
-
- if (type == META) {
- /** \todo charset extraction */
- }
-}
-
-/**
- * Process a <script> start tag as if in "in head"
- *
- * \param treebuilder The treebuilder instance
- * \param token The token to process
- */
-void process_script_in_head(hubbub_treebuilder *treebuilder,
- const hubbub_token *token)
-{
- int success;
- void *script;
- hubbub_tokeniser_optparams params;
-
- success = treebuilder->tree_handler->create_element(
- treebuilder->tree_handler->ctx,
- &token->data.tag, &script);
- if (success != 0) {
- /** \todo errors */
- }
-
- /** \todo mark script as parser-inserted */
-
- /* It would be nice to be able to re-use the generic
- * rcdata character collector here. Unfortunately, we
- * can't as we need to do special processing after the
- * script data has been collected, so we use an almost
- * identical insertion mode which does the right magic
- * at the end. */
- params.content_model.model = HUBBUB_CONTENT_MODEL_CDATA;
- hubbub_tokeniser_setopt(treebuilder->tokeniser,
- HUBBUB_TOKENISER_CONTENT_MODEL,
- &params);
-
- treebuilder->context.collect.mode = treebuilder->context.mode;
- treebuilder->context.collect.node = script;
- treebuilder->context.collect.type = SCRIPT;
- treebuilder->context.collect.string.data.off = 0;
- treebuilder->context.collect.string.len = 0;
-
- treebuilder->context.mode = SCRIPT_COLLECT_CHARACTERS;
-}
-
-/**
* Determine if an element is in (table) scope
*
* \param treebuilder Treebuilder to look in
@@ -580,7 +521,7 @@ uint32_t element_in_scope(hubbub_treebuilder *treebuilder,
return false;
for (node = treebuilder->context.current_node; node > 0; node--) {
- element_type node_type =
+ element_type node_type =
treebuilder->context.element_stack[node].type;
if (node_type == type)