aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.rs
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2023-09-01 12:38:40 +0200
committerMartin Fischer <martin@push-f.com>2023-09-03 23:00:05 +0200
commit03ca8c1f599828eb12e60e6012684bb4c09dbf89 (patch)
tree27709eb8f048625ea45cfa76ea1671314bc4aba6 /src/tokenizer.rs
parent822cc78d438e8df6a068d811d3cc825b883aba36 (diff)
fix!: calculate tag offsets in Tokenizer instead of Emitter impl
Diffstat (limited to 'src/tokenizer.rs')
-rw-r--r--src/tokenizer.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/tokenizer.rs b/src/tokenizer.rs
index cecc0f6..89d743a 100644
--- a/src/tokenizer.rs
+++ b/src/tokenizer.rs
@@ -218,14 +218,16 @@ impl<R: Reader + Position<O>, O: Offset, E: Emitter<O>> Tokenizer<R, O, E> {
#[inline]
pub(crate) fn init_start_tag(&mut self) {
- self.emitter.init_start_tag(self.reader.position() - 1);
+ self.emitter
+ .init_start_tag(self.reader.position() - "<".len() - 1);
self.current_tag_name.clear();
self.is_start_tag = true;
}
#[inline]
pub(crate) fn init_end_tag(&mut self) {
- self.emitter.init_end_tag(self.reader.position() - 1);
+ self.emitter
+ .init_end_tag(self.reader.position() - "</".len() - 1);
self.current_tag_name.clear();
self.is_start_tag = false;
}
@@ -238,7 +240,7 @@ impl<R: Reader + Position<O>, O: Offset, E: Emitter<O>> Tokenizer<R, O, E> {
#[inline]
pub(crate) fn emit_current_tag(&mut self) {
- self.emitter.emit_current_tag(self.reader.position() - 1);
+ self.emitter.emit_current_tag(self.reader.position());
if self.is_start_tag {
if self.naively_switch_state {
self.state = naive_next_state(&self.current_tag_name).into();