diff options
Diffstat (limited to 'src/tokenizer/machine.rs')
-rw-r--r-- | src/tokenizer/machine.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/tokenizer/machine.rs b/src/tokenizer/machine.rs index d5a1f87..faf1ea8 100644 --- a/src/tokenizer/machine.rs +++ b/src/tokenizer/machine.rs @@ -2,7 +2,6 @@ mod utils; use crate::entities::try_read_character_reference; use crate::offset::{Offset, Position}; -use crate::tokenizer::CdataAction; use crate::trace::AttrValueSyntax; use crate::{reader::Reader, Emitter, Error}; use utils::{ @@ -2041,21 +2040,22 @@ where } #[inline] -pub(super) fn handle_cdata_open<O, R, E>(slf: &mut Machine<R, O, E>, action: CdataAction) -where +pub(super) fn handle_cdata_open<O, R, E>( + slf: &mut Machine<R, O, E>, + adjusted_current_node_present_and_not_in_html_namespace: bool, +) where O: Offset, R: Reader + Position<O>, E: Emitter<O>, { - match action { - CdataAction::Cdata => slf.state = State::CdataSection, - CdataAction::BogusComment => { - slf.emit_error(Error::CdataInHtmlContent); + if adjusted_current_node_present_and_not_in_html_namespace { + slf.state = State::CdataSection; + } else { + slf.emit_error(Error::CdataInHtmlContent); - slf.emitter.init_comment(slf.reader.position()); - slf.emitter.push_comment("[CDATA["); - slf.state = State::BogusComment; - } + slf.emitter.init_comment(slf.reader.position()); + slf.emitter.push_comment("[CDATA["); + slf.state = State::BogusComment; } } |