From 11a7234900380fed842e1872f2b87a76864718ad Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Thu, 5 Oct 2023 00:49:15 -0400 Subject: [PATCH] Handle empty parameters with whitespace preceding. --- src/parser/lesser_block.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/parser/lesser_block.rs b/src/parser/lesser_block.rs index e3dcca46..761e74c6 100644 --- a/src/parser/lesser_block.rs +++ b/src/parser/lesser_block.rs @@ -258,6 +258,7 @@ pub(crate) fn src_block<'b, 'g, 'r, 's>( let (remaining, parameters) = opt(map(tuple((space1, src_parameters)), |(_, parameters)| { parameters }))(remaining)?; + let parameters = parameters.flatten(); let (remaining, _nl) = recognize(tuple((space0, line_ending)))(remaining)?; let lesser_block_end_specialized = lesser_block_end("src"); let contexts = [ @@ -389,8 +390,15 @@ enum SwitchState { } #[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))] -fn src_parameters<'s>(input: OrgSource<'s>) -> Res, OrgSource<'s>> { - recognize(many_till(anychar, peek(tuple((space0, line_ending)))))(input) +fn src_parameters<'s>(input: OrgSource<'s>) -> Res, Option>> { + let (remaining, parameters) = + recognize(many_till(anychar, peek(tuple((space0, line_ending)))))(input)?; + + if parameters.len() == 0 { + Ok((remaining, None)) + } else { + Ok((remaining, Some(parameters))) + } } #[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]