diff options
author | Andrew Sidwell <andy@entai.co.uk> | 2008-07-11 13:24:58 +0000 |
---|---|---|
committer | Andrew Sidwell <andy@entai.co.uk> | 2008-07-11 13:24:58 +0000 |
commit | 76cfea6e44fd2ea8334ef3039cb2934127f848d0 (patch) | |
tree | 5af300441d17253022cfe4cf5d0fa1d88943662d /src | |
parent | 0b82047210a134e670eb6fb3681881cf209ada2b (diff) | |
download | libhubbub-76cfea6e44fd2ea8334ef3039cb2934127f848d0.tar.gz libhubbub-76cfea6e44fd2ea8334ef3039cb2934127f848d0.tar.bz2 |
Fix whitespace processing.
svn path=/trunk/hubbub/; revision=4592
Diffstat (limited to 'src')
-rw-r--r-- | src/treebuilder/treebuilder.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c index e958098..f330341 100644 --- a/src/treebuilder/treebuilder.c +++ b/src/treebuilder/treebuilder.c @@ -414,23 +414,26 @@ bool process_characters_expect_whitespace(hubbub_treebuilder *treebuilder, /** \todo UTF-16 */ + printf("well hello there, I see I'm not being inserted...\n"); + for (c = 0; c < len; c++) { if (data[c] != 0x09 && data[c] != 0x0A && data[c] != 0x0C && data[c] != 0x20) break; } - /* Non-whitespace characters in token, so reprocess */ - if (c != len) { - if (c > 0 && insert_into_current_node) { - hubbub_string temp; - temp.type = HUBBUB_STRING_OFF; - temp.data.off = token->data.character.data.off; - temp.len = c; + if (c > 0 && insert_into_current_node) { + hubbub_string temp; - append_text(treebuilder, &temp); - } + temp.type = HUBBUB_STRING_OFF; + temp.data.off = token->data.character.data.off; + temp.len = c; + append_text(treebuilder, &temp); + } + + /* Non-whitespace characters in token, so reprocess */ + if (c != len) { /* Update token data to strip leading whitespace */ ((hubbub_token *) token)->data.character.data.off += c; ((hubbub_token *) token)->data.character.len -= c; |