From 99f9450eda69b261d46b37c9d7a5b5f97ca35ede Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 26 Nov 2022 18:25:53 -0500 Subject: [PATCH] Clean up paragraph eof detection. --- src/parser/text_element_parser.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/parser/text_element_parser.rs b/src/parser/text_element_parser.rs index 7d2db6fc..f6696dcb 100644 --- a/src/parser/text_element_parser.rs +++ b/src/parser/text_element_parser.rs @@ -20,6 +20,7 @@ use super::text::Link; use super::text::Res; use super::text::TextElement; use nom::branch::alt; +use nom::combinator::eof; use nom::combinator::map; use nom::combinator::not; use nom::combinator::recognize; @@ -87,18 +88,11 @@ pub fn paragraph<'s, 'r>( i: &'s str, context: &'r OrgModeContext<'r>, ) -> Res<&'s str, (Vec>, &'s str)> { - // not(eof)(i)?; + // Add a not(eof) check because many_till cannot match a zero-length string + not(eof)(i)?; let paragraph_context = context.with_additional_fail_matcher(¶graph_end); let text_element_parser = parser_with_context!(flat_text_element)(¶graph_context); let ret = many_till(text_element_parser, paragraph_end)(i); trace!("Returning from paragraph with {:#?}", ret); - if let Ok((remaining, (text_elements, end_of_paragraph))) = &ret { - if text_elements.len() == 0 { - return Err(nom::Err::Error(nom::error::VerboseError::from_error_kind( - remaining, - ErrorKind::ManyTill, - ))); - } - } ret }