From ca98210d2016d96d1c441932d7a67bbc6e5eccb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Mon, 28 Jun 2021 17:47:23 +0900 Subject: [PATCH] fix: insert() | delete() would calculate the new insert incorrectly Refs #386 --- helix-core/src/transaction.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/helix-core/src/transaction.rs b/helix-core/src/transaction.rs index 49ac396dd..d55e2e9cb 100644 --- a/helix-core/src/transaction.rs +++ b/helix-core/src/transaction.rs @@ -193,9 +193,10 @@ impl ChangeSet { head_b = changes_b.next(); } Ordering::Greater => { + // TODO: cover this with a test // figure out the byte index of the truncated string end let (pos, _) = s.char_indices().nth(len - j).unwrap(); - s.pop_front(s.len() as u32 - pos as u32); + s.pop_front(pos as u32); head_a = Some(Insert(s)); head_b = changes_b.next(); }