diff options
author | Andrew Sidwell <andy@entai.co.uk> | 2008-08-10 15:49:52 +0000 |
---|---|---|
committer | Andrew Sidwell <andy@entai.co.uk> | 2008-08-10 15:49:52 +0000 |
commit | 086bd1eef17d63b36a47ac954b1d90fff3d4115d (patch) | |
tree | 07a9ec2dbe0f583eca788a9da6e559c58a664ef0 /src/treebuilder/treebuilder.c | |
parent | c8aaecba0272665ba64380ec62d9fc6eba90c960 (diff) | |
download | libhubbub-086bd1eef17d63b36a47ac954b1d90fff3d4115d.tar.gz libhubbub-086bd1eef17d63b36a47ac954b1d90fff3d4115d.tar.bz2 |
Switch to using hubbub_error for reprocessing state from just a bool, to allow for encoding change info to be returned more easily.
svn path=/trunk/hubbub/; revision=4989
Diffstat (limited to 'src/treebuilder/treebuilder.c')
-rw-r--r-- | src/treebuilder/treebuilder.c | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c index 8bc9d52..5878bc3 100644 --- a/src/treebuilder/treebuilder.c +++ b/src/treebuilder/treebuilder.c @@ -255,7 +255,7 @@ hubbub_error hubbub_treebuilder_token_handler(const hubbub_token *token, void *pw) { hubbub_treebuilder *treebuilder = (hubbub_treebuilder *) pw; - bool reprocess = true; + hubbub_error err = HUBBUB_REPROCESS; /* Do nothing if we have no document node or there's no tree handler */ if (treebuilder->context.document == NULL || @@ -274,82 +274,82 @@ hubbub_error hubbub_treebuilder_token_handler(const hubbub_token *token, printf( #x "\n"); #endif - while (reprocess) { + while (err == HUBBUB_REPROCESS) { switch (treebuilder->context.mode) { mode(INITIAL) - reprocess = handle_initial(treebuilder, token); + err = handle_initial(treebuilder, token); break; mode(BEFORE_HTML) - reprocess = handle_before_html(treebuilder, token); + err = handle_before_html(treebuilder, token); break; mode(BEFORE_HEAD) - reprocess = handle_before_head(treebuilder, token); + err = handle_before_head(treebuilder, token); break; mode(IN_HEAD) - reprocess = handle_in_head(treebuilder, token); + err = handle_in_head(treebuilder, token); break; mode(IN_HEAD_NOSCRIPT) - reprocess = handle_in_head_noscript(treebuilder, token); + err = handle_in_head_noscript(treebuilder, token); break; mode(AFTER_HEAD) - reprocess = handle_after_head(treebuilder, token); + err = handle_after_head(treebuilder, token); break; mode(IN_BODY) - reprocess = handle_in_body(treebuilder, token); + err = handle_in_body(treebuilder, token); break; mode(IN_TABLE) - reprocess = handle_in_table(treebuilder, token); + err = handle_in_table(treebuilder, token); break; mode(IN_CAPTION) - reprocess = handle_in_caption(treebuilder, token); + err = handle_in_caption(treebuilder, token); break; mode(IN_COLUMN_GROUP) - reprocess = handle_in_column_group(treebuilder, token); + err = handle_in_column_group(treebuilder, token); break; mode(IN_TABLE_BODY) - reprocess = handle_in_table_body(treebuilder, token); + err = handle_in_table_body(treebuilder, token); break; mode(IN_ROW) - reprocess = handle_in_row(treebuilder, token); + err = handle_in_row(treebuilder, token); break; mode(IN_CELL) - reprocess = handle_in_cell(treebuilder, token); + err = handle_in_cell(treebuilder, token); break; mode(IN_SELECT) - reprocess = handle_in_select(treebuilder, token); + err = handle_in_select(treebuilder, token); break; mode(IN_SELECT_IN_TABLE) - reprocess = handle_in_select_in_table(treebuilder, token); + err = handle_in_select_in_table(treebuilder, token); break; mode(IN_FOREIGN_CONTENT) - reprocess = handle_in_foreign_content(treebuilder, token); + err = handle_in_foreign_content(treebuilder, token); break; mode(AFTER_BODY) - reprocess = handle_after_body(treebuilder, token); + err = handle_after_body(treebuilder, token); break; mode(IN_FRAMESET) - reprocess = handle_in_frameset(treebuilder, token); + err = handle_in_frameset(treebuilder, token); break; mode(AFTER_FRAMESET) - reprocess = handle_after_frameset(treebuilder, token); + err = handle_after_frameset(treebuilder, token); break; mode(AFTER_AFTER_BODY) - reprocess = handle_after_after_body(treebuilder, token); + err = handle_after_after_body(treebuilder, token); break; mode(AFTER_AFTER_FRAMESET) - reprocess = handle_after_after_frameset(treebuilder, token); + err = handle_after_after_frameset(treebuilder, token); break; mode(GENERIC_RCDATA) - reprocess = handle_generic_rcdata(treebuilder, token); + err = handle_generic_rcdata(treebuilder, token); break; mode(SCRIPT_COLLECT_CHARACTERS) - reprocess = handle_script_collect_characters( + err = handle_script_collect_characters( treebuilder, token); break; } } - return HUBBUB_OK; + return err; } @@ -364,7 +364,7 @@ hubbub_error hubbub_treebuilder_token_handler(const hubbub_token *token, * (token data updated to skip any leading whitespace), * false if it contained only whitespace */ -bool process_characters_expect_whitespace(hubbub_treebuilder *treebuilder, +hubbub_error process_characters_expect_whitespace(hubbub_treebuilder *treebuilder, const hubbub_token *token, bool insert_into_current_node) { const uint8_t *data = token->data.character.ptr; @@ -394,10 +394,10 @@ bool process_characters_expect_whitespace(hubbub_treebuilder *treebuilder, ((hubbub_token *) token)->data.character.ptr += c; ((hubbub_token *) token)->data.character.len -= c; - return true; + return HUBBUB_REPROCESS; } - return false; + return HUBBUB_OK; } /** |