@@ -19,6 +19,7 @@ impl<'a> EventIterator<'a> {
19
19
pub fn new ( file_text : & ' a str , iterator : OffsetIter < ' a , ' a > ) -> EventIterator < ' a > {
20
20
let mut iterator = iterator;
21
21
let next = iterator. next ( ) ;
22
+ // println!("Raw event: {:?}", next);
22
23
EventIterator {
23
24
file_text,
24
25
iterator,
@@ -54,6 +55,7 @@ impl<'a> EventIterator<'a> {
54
55
55
56
fn move_iterator_next ( & mut self ) -> Option < ( Event < ' a > , Range ) > {
56
57
let next = self . iterator . next ( ) ;
58
+ // println!("Raw event: {:?}", next);
57
59
58
60
match next {
59
61
Some ( ( Event :: Start ( Tag :: Table ( _) ) , _) ) => self . in_table_count += 1 ,
@@ -319,6 +321,9 @@ fn parse_text(iterator: &mut EventIterator) -> Result<Text, ParseError> {
319
321
// Pulldown cmark breaks up text items when they have escape chars
320
322
// in them, so just combine the results.
321
323
let raw_start = iterator. get_last_range ( ) . start ;
324
+ // Pulldown cmark has the start range in the wrong place when there's a leading backslash
325
+ let is_start_backslash = raw_start > 0 && iterator. file_text . as_bytes ( ) [ raw_start - 1 ] == b'\\' ;
326
+ let raw_start = if is_start_backslash { raw_start - 1 } else { raw_start } ;
322
327
while let Some ( ( Event :: Text ( _) , _) ) = iterator. peek ( ) {
323
328
iterator. next ( ) ;
324
329
}
0 commit comments