summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tokeniser/tokeniser.c6
-rw-r--r--src/treebuilder/internal.h3
-rw-r--r--src/treebuilder/treebuilder.c6
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;
}