summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRupinder Singh Khokhar <rsk1coder99@gmail.com>2014-06-14 07:35:44 +0530
committerRupinder Singh Khokhar <rsk1coder99@gmail.com>2014-07-09 10:04:21 +0530
commite68a4b8ac410f402d12308ce7d63083b78d7ee89 (patch)
treefd7a8bedb4a668dd1d801b3bde2d3c14381c5e36 /src
parentd10b20d4f9fd2879e223de7a979535a77db2e9ce (diff)
downloadlibhubbub-e68a4b8ac410f402d12308ce7d63083b78d7ee89.tar.gz
libhubbub-e68a4b8ac410f402d12308ce7d63083b78d7ee89.tar.bz2
Adding PLAINTEXT State & fixing the tester at places
Diffstat (limited to 'src')
-rw-r--r--src/tokeniser/tokeniser.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/tokeniser/tokeniser.c b/src/tokeniser/tokeniser.c
index b31b404..64eaf30 100644
--- a/src/tokeniser/tokeniser.c
+++ b/src/tokeniser/tokeniser.c
@@ -759,12 +759,16 @@ hubbub_error hubbub_tokeniser_handle_data(hubbub_tokeniser *tokeniser)
emit_current_chars(tokeniser);
}
- /* Emit a null character */
- emit_character_token(tokeniser, &u_null_str);
+ /* Emit a null or a replacement character */
+ if(tokeniser->content_model != HUBBUB_CONTENT_MODEL_PCDATA) {
+ emit_character_token(tokeniser, &u_fffd_str);
+ } else {
+ emit_character_token(tokeniser, &u_null_str);
+ }
/* Advance past NUL */
parserutils_inputstream_advance(tokeniser->input, 1);
- } else if (c == '\r') {
+ } else if (c == '\r' && tokeniser->content_model != HUBBUB_CONTENT_MODEL_PLAINTEXT) {
error = parserutils_inputstream_peek(
tokeniser->input,
tokeniser->context.pending + len,