diff options
author | Martin Fischer <martin@push-f.com> | 2023-09-01 19:47:42 +0200 |
---|---|---|
committer | Martin Fischer <martin@push-f.com> | 2023-09-03 23:00:05 +0200 |
commit | 5d91c0cca7e8f453e0e2f36c57e9ad85ee8ab124 (patch) | |
tree | 4263bbd4c9cbd20a6455d1c7af45cb4cbd32dcf5 | |
parent | 63f945e568c0710e3a97cddaa6264e85d86faa79 (diff) |
fix: off-by-one missing-semicolon-after-character-reference span
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rw-r--r-- | src/tokenizer.rs | 5 | ||||
-rw-r--r-- | tests/test_spans.rs | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 13d3cf3..61d8138 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,7 +42,8 @@ * Fixed most error spans mistakenly being empty. * Fixed some error spans being off-by-one - (`eof-*`, `end-tag-with-trailing-solidus`). + (`eof-*`, `end-tag-with-trailing-solidus`, + `missing-semicolon-after-character-reference`). ### 0.5.0 - 2023-08-19 diff --git a/src/tokenizer.rs b/src/tokenizer.rs index 871074e..f76cad8 100644 --- a/src/tokenizer.rs +++ b/src/tokenizer.rs @@ -184,7 +184,10 @@ impl<R: Reader + Position<O>, O: Offset, E: Emitter<O>> Tokenizer<R, O, E> { | Error::EofInComment | Error::EofInDoctype | Error::EofInScriptHtmlCommentLikeText - | Error::EofInTag => self.reader.position()..self.reader.position(), + | Error::EofInTag + | Error::MissingSemicolonAfterCharacterReference => { + self.reader.position()..self.reader.position() + } _ => self.reader.position() - 1..self.reader.position(), }; self.emitter.emit_error(error, span); diff --git a/tests/test_spans.rs b/tests/test_spans.rs index 560fe0e..0956f8e 100644 --- a/tests/test_spans.rs +++ b/tests/test_spans.rs @@ -249,7 +249,7 @@ fn error_char_ref_missing_semicolon() { let html = "¬"; assert_snapshot!(annotate_errors(html), @r###" ¬ - ^ missing-semicolon-after-character-reference + ^ missing-semicolon-after-character-reference "###); } |