From 592a3bb1fc8dacb159a6fd5168df6f69015a5184 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Fri, 1 Sep 2023 15:54:34 +0200 Subject: refactor: proxy init_doctype through Tokenizer --- src/machine.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/machine.rs b/src/machine.rs index 082ab68..5910667 100644 --- a/src/machine.rs +++ b/src/machine.rs @@ -1159,7 +1159,7 @@ where } None => { slf.emit_error(Error::EofInDoctype); - slf.emitter.init_doctype(slf.doctype_offset); + slf.init_doctype(); slf.emitter.set_force_quirks(); slf.emitter.emit_current_doctype(slf.reader.position()); Ok(ControlToken::Eof) @@ -1175,14 +1175,14 @@ where Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('\0') => { slf.emit_error(Error::UnexpectedNullCharacter); - slf.emitter.init_doctype(slf.doctype_offset); + slf.init_doctype(); slf.emitter.push_doctype_name("\u{fffd}"); slf.state = State::DoctypeName; Ok(ControlToken::Continue) } Some('>') => { slf.emit_error(Error::MissingDoctypeName); - slf.emitter.init_doctype(slf.doctype_offset); + slf.init_doctype(); slf.emitter.set_force_quirks(); slf.state = State::Data; slf.emitter.emit_current_doctype(slf.reader.position()); @@ -1190,13 +1190,13 @@ where } None => { slf.emit_error(Error::EofInDoctype); - slf.emitter.init_doctype(slf.doctype_offset); + slf.init_doctype(); slf.emitter.set_force_quirks(); slf.emitter.emit_current_doctype(slf.reader.position()); Ok(ControlToken::Eof) } Some(x) => { - slf.emitter.init_doctype(slf.doctype_offset); + slf.init_doctype(); slf.emitter .push_doctype_name(ctostr!(x.to_ascii_lowercase())); slf.state = State::DoctypeName; @@ -1892,6 +1892,13 @@ where } } +impl, O: Offset, E: Emitter> Tokenizer { + #[inline] + fn init_doctype(&mut self) { + self.emitter.init_doctype(self.doctype_offset); + } +} + #[inline] pub fn handle_cdata_open(slf: &mut Tokenizer, action: CdataAction) where -- cgit v1.2.3