diff --git a/src/compare/diff.rs b/src/compare/diff.rs index 9d06837..42a3d9b 100644 --- a/src/compare/diff.rs +++ b/src/compare/diff.rs @@ -1402,6 +1402,7 @@ fn compare_table<'b, 's>( // Compare value let value = get_property(emacs, ":value")?; if value.is_some() { + // I don't know what :value is for, but it seems to always be nil. This is here to alert me to value being non-nil so I can investigate. this_status = DiffStatus::Bad; message = Some(format!("Non-nil value {:?}", value)) } diff --git a/src/parser/table.rs b/src/parser/table.rs index e9ad98f..1d27ed6 100644 --- a/src/parser/table.rs +++ b/src/parser/table.rs @@ -3,8 +3,8 @@ use nom::bytes::complete::is_not; use nom::bytes::complete::tag; use nom::character::complete::line_ending; use nom::character::complete::space0; -use nom::combinator::eof; use nom::combinator::not; +use nom::combinator::opt; use nom::combinator::peek; use nom::combinator::recognize; use nom::combinator::verify; @@ -17,6 +17,7 @@ use super::keyword::table_formula_keyword; use super::object_parser::table_cell_set_object; use super::org_source::OrgSource; use super::util::exit_matcher_parser; +use super::util::org_line_ending; use crate::context::parser_with_context; use crate::context::ContextElement; use crate::context::ExitClass; @@ -105,7 +106,7 @@ fn org_mode_table_row_rule<'b, 'g, 'r, 's>( input: OrgSource<'s>, ) -> Res, TableRow<'s>> { start_of_line(input)?; - let (remaining, _) = tuple((space0, tag("|-"), is_not("\r\n"), line_ending))(input)?; + let (remaining, _) = tuple((space0, tag("|-"), opt(is_not("\r\n")), org_line_ending))(input)?; let source = get_consumed(input, remaining); Ok(( remaining, @@ -125,7 +126,7 @@ fn org_mode_table_row_regular<'b, 'g, 'r, 's>( let (remaining, _) = tuple((space0, tag("|")))(input)?; let (remaining, children) = many1(parser_with_context!(org_mode_table_cell)(context))(remaining)?; - let (remaining, _tail) = recognize(tuple((space0, alt((line_ending, eof)))))(remaining)?; + let (remaining, _tail) = recognize(tuple((space0, org_line_ending)))(remaining)?; let source = get_consumed(input, remaining); Ok(( remaining,