summaryrefslogtreecommitdiff
path: root/src/treebuilder
diff options
context:
space:
mode:
authorAndrew Sidwell <andy@entai.co.uk>2008-08-10 15:52:44 +0000
committerAndrew Sidwell <andy@entai.co.uk>2008-08-10 15:52:44 +0000
commit2ae59ba6c47e1b062536e3835e429ad1a17bee6f (patch)
tree974221ad82b047ed09bcf088b5385f052ea4756b /src/treebuilder
parent086bd1eef17d63b36a47ac954b1d90fff3d4115d (diff)
downloadlibhubbub-2ae59ba6c47e1b062536e3835e429ad1a17bee6f.tar.gz
libhubbub-2ae59ba6c47e1b062536e3835e429ad1a17bee6f.tar.bz2
Simplify in_head.c; make sure return codes from handle_in_head() get propagated properly.
svn path=/trunk/hubbub/; revision=4990
Diffstat (limited to 'src/treebuilder')
-rw-r--r--src/treebuilder/after_frameset.c2
-rw-r--r--src/treebuilder/in_body.c2
-rw-r--r--src/treebuilder/in_frameset.c2
-rw-r--r--src/treebuilder/in_head.c23
-rw-r--r--src/treebuilder/in_table.c2
5 files changed, 6 insertions, 25 deletions
diff --git a/src/treebuilder/after_frameset.c b/src/treebuilder/after_frameset.c
index 0719b07..a94eb86 100644
--- a/src/treebuilder/after_frameset.c
+++ b/src/treebuilder/after_frameset.c
@@ -49,7 +49,7 @@ hubbub_error handle_after_frameset(hubbub_treebuilder *treebuilder,
if (type == HTML) {
handle_in_body(treebuilder, token);
} else if (type == NOFRAMES) {
- handle_in_head(treebuilder, token);
+ err = handle_in_head(treebuilder, token);
} else {
/** \todo parse error */
}
diff --git a/src/treebuilder/in_body.c b/src/treebuilder/in_body.c
index 556862b..6be930d 100644
--- a/src/treebuilder/in_body.c
+++ b/src/treebuilder/in_body.c
@@ -221,7 +221,7 @@ bool process_start_tag(hubbub_treebuilder *treebuilder,
type == META || type == NOFRAMES || type == SCRIPT ||
type == STYLE || type == TITLE) {
/* Process as "in head" */
- handle_in_head(treebuilder, token);
+ err = handle_in_head(treebuilder, token);
} else if (type == BODY) {
process_body_in_body(treebuilder, token);
} else if (type == ADDRESS || type == ARTICLE || type == ASIDE ||
diff --git a/src/treebuilder/in_frameset.c b/src/treebuilder/in_frameset.c
index 2cae20c..221313e 100644
--- a/src/treebuilder/in_frameset.c
+++ b/src/treebuilder/in_frameset.c
@@ -54,7 +54,7 @@ hubbub_error handle_in_frameset(hubbub_treebuilder *treebuilder,
insert_element_no_push(treebuilder, &token->data.tag);
/** \todo ack sc flag */
} else if (type == NOFRAMES) {
- handle_in_head(treebuilder, token);
+ err = handle_in_head(treebuilder, token);
} else {
/** \todo parse error */
}
diff --git a/src/treebuilder/in_head.c b/src/treebuilder/in_head.c
index 710fdce..034be21 100644
--- a/src/treebuilder/in_head.c
+++ b/src/treebuilder/in_head.c
@@ -14,23 +14,6 @@
#include "utils/utils.h"
-/**
- * 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"
@@ -114,13 +97,11 @@ hubbub_error handle_in_head(hubbub_treebuilder *treebuilder,
handle_in_body(treebuilder, token);
} else if (type == BASE || type == COMMAND ||
type == EVENTSOURCE || type == LINK) {
- process_base_link_meta_in_head(treebuilder,
- token, type);
+ insert_element_no_push(treebuilder, &token->data.tag);
/** \todo ack sc flag */
} else if (type == META) {
- process_base_link_meta_in_head(treebuilder,
- token, type);
+ insert_element_no_push(treebuilder, &token->data.tag);
/** \todo ack sc flag */
diff --git a/src/treebuilder/in_table.c b/src/treebuilder/in_table.c
index 65a8b94..3a531a5 100644
--- a/src/treebuilder/in_table.c
+++ b/src/treebuilder/in_table.c
@@ -164,7 +164,7 @@ hubbub_error handle_in_table(hubbub_treebuilder *treebuilder,
err = HUBBUB_REPROCESS;
} else if (!tainted && (type == STYLE || type == SCRIPT)) {
- handle_in_head(treebuilder, token);
+ err = handle_in_head(treebuilder, token);
} else if (!tainted && type == INPUT) {
handled = process_input_in_table(treebuilder, token);
} else {