diff options
author | Andrew Sidwell <andy@entai.co.uk> | 2008-08-09 19:34:52 +0000 |
---|---|---|
committer | Andrew Sidwell <andy@entai.co.uk> | 2008-08-09 19:34:52 +0000 |
commit | 6481bd7f3a503573c31b224dfde229dce2e9b68f (patch) | |
tree | 0b6caa76845679dad3de650979ab01bca8bb2a79 /src | |
parent | 14fc365f4e090760b853a004ba145954dae23be4 (diff) | |
download | libhubbub-6481bd7f3a503573c31b224dfde229dce2e9b68f.tar.gz libhubbub-6481bd7f3a503573c31b224dfde229dce2e9b68f.tar.bz2 |
Propagate the use of hubbub_error up into at least a bit of the treebuilder.
svn path=/trunk/hubbub/; revision=4979
Diffstat (limited to 'src')
-rw-r--r-- | src/tokeniser/tokeniser.c | 6 | ||||
-rw-r--r-- | src/treebuilder/internal.h | 3 | ||||
-rw-r--r-- | src/treebuilder/treebuilder.c | 6 |
3 files changed, 10 insertions, 5 deletions
diff --git a/src/tokeniser/tokeniser.c b/src/tokeniser/tokeniser.c index 73f7bf6..a4d7046 100644 --- a/src/tokeniser/tokeniser.c +++ b/src/tokeniser/tokeniser.c @@ -3023,12 +3023,14 @@ hubbub_error emit_current_doctype(hubbub_tokeniser *tokeniser, hubbub_error hubbub_tokeniser_emit_token(hubbub_tokeniser *tokeniser, hubbub_token *token) { + hubbub_error err = HUBBUB_OK; + assert(tokeniser != NULL); assert(token != NULL); /* Emit the token */ if (tokeniser->token_handler) { - tokeniser->token_handler(token, tokeniser->token_pw); + err = tokeniser->token_handler(token, tokeniser->token_pw); } /* Discard current buffer */ @@ -3044,5 +3046,5 @@ hubbub_error hubbub_tokeniser_emit_token(hubbub_tokeniser *tokeniser, tokeniser->context.pending = 0; } - return HUBBUB_OK; + return err; } diff --git a/src/treebuilder/internal.h b/src/treebuilder/internal.h index 059e177..c63ee99 100644 --- a/src/treebuilder/internal.h +++ b/src/treebuilder/internal.h @@ -115,7 +115,8 @@ struct hubbub_treebuilder void *alloc_pw; /**< Client private data */ }; -void hubbub_treebuilder_token_handler(const hubbub_token *token, void *pw); +hubbub_error hubbub_treebuilder_token_handler( + const hubbub_token *token, void *pw); bool process_characters_expect_whitespace( hubbub_treebuilder *treebuilder, const hubbub_token *token, diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c index 95a05b5..8bc9d52 100644 --- a/src/treebuilder/treebuilder.c +++ b/src/treebuilder/treebuilder.c @@ -251,7 +251,7 @@ hubbub_error hubbub_treebuilder_setopt(hubbub_treebuilder *treebuilder, * \param token The emitted token * \param pw Pointer to treebuilder instance */ -void hubbub_treebuilder_token_handler(const hubbub_token *token, +hubbub_error hubbub_treebuilder_token_handler(const hubbub_token *token, void *pw) { hubbub_treebuilder *treebuilder = (hubbub_treebuilder *) pw; @@ -260,7 +260,7 @@ void hubbub_treebuilder_token_handler(const hubbub_token *token, /* Do nothing if we have no document node or there's no tree handler */ if (treebuilder->context.document == NULL || treebuilder->tree_handler == NULL) - return; + return HUBBUB_OK; assert((signed) treebuilder->context.current_node >= 0); @@ -348,6 +348,8 @@ void hubbub_treebuilder_token_handler(const hubbub_token *token, break; } } + + return HUBBUB_OK; } |