diff --git a/crates/engine/src/cmd/text.rs b/crates/engine/src/cmd/text.rs index e234faac8..02749ce1f 100644 --- a/crates/engine/src/cmd/text.rs +++ b/crates/engine/src/cmd/text.rs @@ -192,7 +192,7 @@ fn dash_autoformat(s: &mut Session) -> Result<(), CmdError> { } else if before.ends_with(' ') && let Some(i) = before.trim_end().rfind("--") && i > 0 - && before.trim_end().get(i - 1..i).is_some_and(|c| c != " ") + && before.trim_end()[..i].chars().next_back().is_some_and(|c| c != ' ') { let p = s.doc.para_mut(f.story, &f.path)?; let props = p.props_at(i).clone(); diff --git a/crates/engine/src/tests_typing.rs b/crates/engine/src/tests_typing.rs index e89b0a5b2..4788df900 100644 --- a/crates/engine/src/tests_typing.rs +++ b/crates/engine/src/tests_typing.rs @@ -357,8 +357,8 @@ fn web_addresses_become_links() { #[test] fn dashes() { - let s = typed("a -- b and c - d and e--f "); - assert_eq!(s.doc.plain_text(StoryRef::Body), "A – b and c – d and e—f "); + let s = typed("a -- b and c - d and e--f and café--g "); + assert_eq!(s.doc.plain_text(StoryRef::Body), "A – b and c – d and e—f and café—g "); } #[test]