From ca98210d2016d96d1c441932d7a67bbc6e5eccb7 Mon Sep 17 00:00:00 2001 From: Blaž Hrastnik Date: Mon, 28 Jun 2021 17:47:23 +0900 Subject: 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 49ac396d..d55e2e9c 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(); } -- cgit v1.2.3-70-g09d2