From 28b2d270543499c14d5e90a15c0d6cf04178c843 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Wed, 6 Sep 2023 14:25:49 -0400 Subject: [PATCH] Consume trailing whitespace after a plain link. --- org_mode_samples/README.org | 1 + .../object/plain_link/with_trailing_whitespace.org | 1 + src/parser/plain_link.rs | 3 +++ 3 files changed, 5 insertions(+) create mode 100644 org_mode_samples/README.org create mode 100644 org_mode_samples/object/plain_link/with_trailing_whitespace.org diff --git a/org_mode_samples/README.org b/org_mode_samples/README.org new file mode 100644 index 0000000..f04ae67 --- /dev/null +++ b/org_mode_samples/README.org @@ -0,0 +1 @@ +This folder contains org-mode documents that get automatically included as tests using build.rs. diff --git a/org_mode_samples/object/plain_link/with_trailing_whitespace.org b/org_mode_samples/object/plain_link/with_trailing_whitespace.org new file mode 100644 index 0000000..f2673d7 --- /dev/null +++ b/org_mode_samples/object/plain_link/with_trailing_whitespace.org @@ -0,0 +1 @@ +mailto:foo@bar.baz . diff --git a/src/parser/plain_link.rs b/src/parser/plain_link.rs index 0c7735a..c4dc464 100644 --- a/src/parser/plain_link.rs +++ b/src/parser/plain_link.rs @@ -11,6 +11,7 @@ use nom::combinator::verify; use nom::multi::many_till; use super::org_source::OrgSource; +use super::util::maybe_consume_object_trailing_whitespace_if_not_exiting; use crate::context::parser_with_context; use crate::context::ContextElement; use crate::context::ExitClass; @@ -61,6 +62,8 @@ pub fn plain_link<'b, 'g, 'r, 's>( let (remaining, _separator) = tag(":")(remaining)?; let (remaining, path) = path_plain(context, remaining)?; peek(parser_with_context!(post)(context))(remaining)?; + let (remaining, _trailing_whitespace) = + maybe_consume_object_trailing_whitespace_if_not_exiting(context, remaining)?; let source = get_consumed(input, remaining); Ok(( remaining,