diff options
author | Andrew Sidwell <andy@entai.co.uk> | 2008-07-09 16:15:49 +0000 |
---|---|---|
committer | Andrew Sidwell <andy@entai.co.uk> | 2008-07-09 16:15:49 +0000 |
commit | feb9c2adced5f29a4d4ef0782b2bc880a212dc66 (patch) | |
tree | f1444d58a405e8fc551faba606b75e3fb34e02e1 /src | |
parent | c32c49be6738551acdd5bbd94360e9973c921190 (diff) | |
download | libhubbub-feb9c2adced5f29a4d4ef0782b2bc880a212dc66.tar.gz libhubbub-feb9c2adced5f29a4d4ef0782b2bc880a212dc66.tar.bz2 |
Exorcise process_tag_in_body(), and just use handle_in_body() instead. This makes all the tests "pass".
svn path=/trunk/hubbub/; revision=4545
Diffstat (limited to 'src')
-rw-r--r-- | src/treebuilder/after_after_body.c | 2 | ||||
-rw-r--r-- | src/treebuilder/after_after_frameset.c | 4 | ||||
-rw-r--r-- | src/treebuilder/after_body.c | 2 | ||||
-rw-r--r-- | src/treebuilder/after_frameset.c | 2 | ||||
-rw-r--r-- | src/treebuilder/after_head.c | 2 | ||||
-rw-r--r-- | src/treebuilder/before_head.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_body.c | 39 | ||||
-rw-r--r-- | src/treebuilder/in_caption.c | 6 | ||||
-rw-r--r-- | src/treebuilder/in_column_group.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_frameset.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_head.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_head_noscript.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_select.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_table.c | 2 | ||||
-rw-r--r-- | src/treebuilder/modes.h | 2 |
15 files changed, 16 insertions, 57 deletions
diff --git a/src/treebuilder/after_after_body.c b/src/treebuilder/after_after_body.c index a3f11fb..35e5500 100644 --- a/src/treebuilder/after_after_body.c +++ b/src/treebuilder/after_after_body.c @@ -39,7 +39,7 @@ bool handle_after_after_body(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else { /** \todo parse error */ treebuilder->context.mode = IN_BODY; diff --git a/src/treebuilder/after_after_frameset.c b/src/treebuilder/after_after_frameset.c index 6227825..65981ef 100644 --- a/src/treebuilder/after_after_frameset.c +++ b/src/treebuilder/after_after_frameset.c @@ -30,7 +30,7 @@ bool handle_after_after_frameset(hubbub_treebuilder *treebuilder, case HUBBUB_TOKEN_COMMENT: case HUBBUB_TOKEN_DOCTYPE: case HUBBUB_TOKEN_CHARACTER: - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); break; case HUBBUB_TOKEN_START_TAG: { @@ -39,7 +39,7 @@ bool handle_after_after_frameset(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else { /** \todo parse error */ treebuilder->context.mode = IN_BODY; diff --git a/src/treebuilder/after_body.c b/src/treebuilder/after_body.c index 81c654a..00d44f8 100644 --- a/src/treebuilder/after_body.c +++ b/src/treebuilder/after_body.c @@ -80,7 +80,7 @@ bool handle_after_body(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else { /** \todo parse error */ treebuilder->context.mode = IN_BODY; diff --git a/src/treebuilder/after_frameset.c b/src/treebuilder/after_frameset.c index 1d0a740..37a03a5 100644 --- a/src/treebuilder/after_frameset.c +++ b/src/treebuilder/after_frameset.c @@ -47,7 +47,7 @@ bool handle_after_frameset(hubbub_treebuilder *treebuilder, &token->data.tag.name); if (type == HTML) { - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == NOFRAMES) { process_in_head(treebuilder, token); } else { diff --git a/src/treebuilder/after_head.c b/src/treebuilder/after_head.c index 6c4197f..60b84a7 100644 --- a/src/treebuilder/after_head.c +++ b/src/treebuilder/after_head.c @@ -47,7 +47,7 @@ bool handle_after_head(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == BODY) { handled = true; } else if (type == FRAMESET) { diff --git a/src/treebuilder/before_head.c b/src/treebuilder/before_head.c index 1534ff8..2e73355 100644 --- a/src/treebuilder/before_head.c +++ b/src/treebuilder/before_head.c @@ -47,7 +47,7 @@ bool handle_before_head(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == HEAD) { handled = true; } else { diff --git a/src/treebuilder/in_body.c b/src/treebuilder/in_body.c index fa015d2..9d91aaf 100644 --- a/src/treebuilder/in_body.c +++ b/src/treebuilder/in_body.c @@ -203,45 +203,6 @@ void process_character(hubbub_treebuilder *treebuilder, } /** - * Process a tag as if in "in body" mode - * - * \param treebuilder The treebuilder instance - * \param token The token to process - * \return True to reprocess the token - */ -bool process_tag_in_body(hubbub_treebuilder *treebuilder, - const hubbub_token *token) -{ - bool reprocess = false; - - if (treebuilder->context.strip_leading_lr && - token->type != HUBBUB_TOKEN_CHARACTER) { - /* Reset the LR stripping flag */ - treebuilder->context.strip_leading_lr = false; - } - - switch (token->type) - { - case HUBBUB_TOKEN_CHARACTER: - process_character(treebuilder, token); - break; - case HUBBUB_TOKEN_START_TAG: - reprocess = process_start_tag(treebuilder, token); - break; - case HUBBUB_TOKEN_END_TAG: - reprocess = process_end_tag(treebuilder, token); - break; - case HUBBUB_TOKEN_COMMENT: - case HUBBUB_TOKEN_DOCTYPE: - case HUBBUB_TOKEN_EOF: - assert(0); - break; - } - - return reprocess; -} - -/** * Process a start tag * * \param treebuilder The treebuilder instance diff --git a/src/treebuilder/in_caption.c b/src/treebuilder/in_caption.c index 4f7fe21..d6a1972 100644 --- a/src/treebuilder/in_caption.c +++ b/src/treebuilder/in_caption.c @@ -40,7 +40,7 @@ bool handle_in_caption(hubbub_treebuilder *treebuilder, handled = true; } else { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } } break; @@ -59,7 +59,7 @@ bool handle_in_caption(hubbub_treebuilder *treebuilder, /** \todo parse error */ } else { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } } break; @@ -68,7 +68,7 @@ bool handle_in_caption(hubbub_treebuilder *treebuilder, case HUBBUB_TOKEN_DOCTYPE: case HUBBUB_TOKEN_EOF: /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); break; } diff --git a/src/treebuilder/in_column_group.c b/src/treebuilder/in_column_group.c index 07454ee..bcd1ebe 100644 --- a/src/treebuilder/in_column_group.c +++ b/src/treebuilder/in_column_group.c @@ -49,7 +49,7 @@ bool handle_in_column_group(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == COL) { insert_element_no_push(treebuilder, &token->data.tag); diff --git a/src/treebuilder/in_frameset.c b/src/treebuilder/in_frameset.c index 465f7e6..923f2db 100644 --- a/src/treebuilder/in_frameset.c +++ b/src/treebuilder/in_frameset.c @@ -47,7 +47,7 @@ bool handle_in_frameset(hubbub_treebuilder *treebuilder, &token->data.tag.name); if (type == HTML) { - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == FRAMESET) { insert_element(treebuilder, &token->data.tag); } else if (type == FRAME) { diff --git a/src/treebuilder/in_head.c b/src/treebuilder/in_head.c index 925bf57..58955e5 100644 --- a/src/treebuilder/in_head.c +++ b/src/treebuilder/in_head.c @@ -111,7 +111,7 @@ bool handle_in_head(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == BASE || type == COMMAND || type == EVENT_SOURCE || type == LINK) { process_base_link_meta_in_head(treebuilder, diff --git a/src/treebuilder/in_head_noscript.c b/src/treebuilder/in_head_noscript.c index 4eebf4e..cea5d88 100644 --- a/src/treebuilder/in_head_noscript.c +++ b/src/treebuilder/in_head_noscript.c @@ -44,7 +44,7 @@ bool handle_in_head_noscript(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == NOSCRIPT) { handled = true; } else if (type == LINK || type == META || type == NOFRAMES || diff --git a/src/treebuilder/in_select.c b/src/treebuilder/in_select.c index df286ed..8a60b60 100644 --- a/src/treebuilder/in_select.c +++ b/src/treebuilder/in_select.c @@ -49,7 +49,7 @@ bool handle_in_select(hubbub_treebuilder *treebuilder, if (type == HTML) { /* Process as if "in body" */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); } else if (type == OPTION) { if (current_node(treebuilder) == OPTION) { if (!element_stack_pop(treebuilder, &ns, &otype, diff --git a/src/treebuilder/in_table.c b/src/treebuilder/in_table.c index e43a423..ad4c5b9 100644 --- a/src/treebuilder/in_table.c +++ b/src/treebuilder/in_table.c @@ -207,7 +207,7 @@ bool handle_in_table(hubbub_treebuilder *treebuilder, } /** \todo parse error */ - process_tag_in_body(treebuilder, token); + handle_in_body(treebuilder, token); treebuilder->context.in_table_foster = false; } diff --git a/src/treebuilder/modes.h b/src/treebuilder/modes.h index b1820d2..7c0a87b 100644 --- a/src/treebuilder/modes.h +++ b/src/treebuilder/modes.h @@ -94,7 +94,5 @@ bool process_in_table(hubbub_treebuilder *treebuilder, const hubbub_token *token); bool process_in_select(hubbub_treebuilder *treebuilder, const hubbub_token *token); -bool process_tag_in_body(hubbub_treebuilder *treebuilder, - const hubbub_token *token); #endif |