From 5d91c0cca7e8f453e0e2f36c57e9ad85ee8ab124 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Fri, 1 Sep 2023 19:47:42 +0200 Subject: fix: off-by-one missing-semicolon-after-character-reference span --- CHANGELOG.md | 3 ++- src/tokenizer.rs | 5 ++++- 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, O: Offset, E: Emitter> Tokenizer { | 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 "###); } -- cgit v1.2.3