diff options
Diffstat (limited to 'src/construct/heading_setext.rs')
-rw-r--r-- | src/construct/heading_setext.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/construct/heading_setext.rs b/src/construct/heading_setext.rs index 98d7843..675b2ac 100644 --- a/src/construct/heading_setext.rs +++ b/src/construct/heading_setext.rs @@ -109,8 +109,9 @@ pub fn start(tokenizer: &mut Tokenizer) -> State { fn before(tokenizer: &mut Tokenizer) -> State { match tokenizer.current { Some(b'-' | b'=') => { + tokenizer.tokenize_state.marker = tokenizer.current.unwrap(); tokenizer.enter(Token::HeadingSetextUnderline); - inside(tokenizer, tokenizer.current.unwrap()) + inside(tokenizer) } _ => State::Nok, } @@ -123,13 +124,14 @@ fn before(tokenizer: &mut Tokenizer) -> State { /// > | == /// ^ /// ``` -fn inside(tokenizer: &mut Tokenizer, marker: u8) -> State { +fn inside(tokenizer: &mut Tokenizer) -> State { match tokenizer.current { - Some(b'-' | b'=') if tokenizer.current.unwrap() == marker => { + Some(b'-' | b'=') if tokenizer.current.unwrap() == tokenizer.tokenize_state.marker => { tokenizer.consume(); - State::Fn(Box::new(move |t| inside(t, marker))) + State::Fn(Box::new(inside)) } _ => { + tokenizer.tokenize_state.marker = 0; tokenizer.exit(Token::HeadingSetextUnderline); tokenizer.attempt_opt(space_or_tab(), after)(tokenizer) } |