diff options
Diffstat (limited to 'src/treebuilder/after_after_frameset.c')
-rw-r--r-- | src/treebuilder/after_after_frameset.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/treebuilder/after_after_frameset.c b/src/treebuilder/after_after_frameset.c index f068714..e9d1176 100644 --- a/src/treebuilder/after_after_frameset.c +++ b/src/treebuilder/after_after_frameset.c @@ -25,23 +25,28 @@ hubbub_error handle_after_after_frameset(hubbub_treebuilder *treebuilder, const hubbub_token *token) { hubbub_error err = HUBBUB_OK; - switch (token->type) { case HUBBUB_TOKEN_CHARACTER: - err = process_characters_expect_whitespace(treebuilder, - token, true); - if (err == HUBBUB_REPROCESS) - treebuilder->context.mode = IN_FRAMESET; + { + const uint8_t *data = token->data.character.ptr; + uint8_t c = data[0]; + if (c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == '\f') { + err = handle_in_body(treebuilder, token); + } + + } break; case HUBBUB_TOKEN_COMMENT: err = process_comment_append(treebuilder, token, treebuilder->context.document); break; case HUBBUB_TOKEN_END_TAG: - case HUBBUB_TOKEN_DOCTYPE: /** \todo parse error */ /* ignore token */ break; + case HUBBUB_TOKEN_DOCTYPE: + err = handle_in_body(treebuilder, token); + break; case HUBBUB_TOKEN_START_TAG: { element_type type = element_type_from_name(treebuilder, |