Handle empty parameters with whitespace preceding.

This commit is contained in:
Tom Alexander 2023-10-05 00:49:15 -04:00
parent 50a3631b79
commit 11a7234900
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
1 changed files with 10 additions and 2 deletions

View File

@ -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>, OrgSource<'s>> {
recognize(many_till(anychar, peek(tuple((space0, line_ending)))))(input)
fn src_parameters<'s>(input: OrgSource<'s>) -> Res<OrgSource<'s>, Option<OrgSource<'s>>> {
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"))]