diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2009-04-15 11:02:53 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2009-04-15 11:02:53 +0000 |
commit | b50dc50a2b25c7cc77843b25adc41575cfce7fd6 (patch) | |
tree | 68d81123fda9d7df3aa15375e12ea034896a1c87 /src/treebuilder/initial.c | |
parent | 051158ffe97eb9b4a1a4b9b5ea719c7e38509200 (diff) | |
download | libhubbub-b50dc50a2b25c7cc77843b25adc41575cfce7fd6.tar.gz libhubbub-b50dc50a2b25c7cc77843b25adc41575cfce7fd6.tar.bz2 |
Manually merge r7070 into trunk
svn path=/trunk/hubbub/; revision=7082
Diffstat (limited to 'src/treebuilder/initial.c')
-rw-r--r-- | src/treebuilder/initial.c | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/src/treebuilder/initial.c b/src/treebuilder/initial.c index 6ead570..5f0796c 100644 --- a/src/treebuilder/initial.c +++ b/src/treebuilder/initial.c @@ -228,53 +228,50 @@ hubbub_error handle_initial(hubbub_treebuilder *treebuilder, switch (token->type) { case HUBBUB_TOKEN_CHARACTER: - if (process_characters_expect_whitespace(treebuilder, token, - false)) { + err = process_characters_expect_whitespace(treebuilder, token, + false); + if (err == HUBBUB_REPROCESS) { /** \todo parse error */ treebuilder->tree_handler->set_quirks_mode( treebuilder->tree_handler->ctx, HUBBUB_QUIRKS_MODE_FULL); treebuilder->context.mode = BEFORE_HTML; - err = HUBBUB_REPROCESS; } break; case HUBBUB_TOKEN_COMMENT: - process_comment_append(treebuilder, token, + err = process_comment_append(treebuilder, token, treebuilder->context.document); break; case HUBBUB_TOKEN_DOCTYPE: { - int success; void *doctype, *appended; const hubbub_doctype *cdoc; /** \todo parse error */ - success = treebuilder->tree_handler->create_doctype( + err = treebuilder->tree_handler->create_doctype( treebuilder->tree_handler->ctx, &token->data.doctype, &doctype); - if (success != 0) { - /** \todo errors */ - } + if (err != HUBBUB_OK) + return err; /* Append to Document node */ - success = treebuilder->tree_handler->append_child( + err = treebuilder->tree_handler->append_child( treebuilder->tree_handler->ctx, treebuilder->context.document, doctype, &appended); - if (success != 0) { - /** \todo errors */ - treebuilder->tree_handler->unref_node( - treebuilder->tree_handler->ctx, - doctype); - } treebuilder->tree_handler->unref_node( - treebuilder->tree_handler->ctx, appended); + treebuilder->tree_handler->ctx, + doctype); + + if (err != HUBBUB_OK) + return err; + treebuilder->tree_handler->unref_node( - treebuilder->tree_handler->ctx, doctype); + treebuilder->tree_handler->ctx, appended); cdoc = &token->data.doctype; |