From 2e4a338944d31e77b4db5dd7d578aacedef3256f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20K=C4=99pka?= Date: Mon, 7 Jun 2021 19:03:44 +0200 Subject: [PATCH] Add bounds checks to replace --- helix-term/src/commands.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index d34afda4..94e1af2d 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -472,10 +472,12 @@ pub fn replace(cx: &mut Context) { let transaction = Transaction::change_by_selection(doc.text(), doc.selection(view.id), |range| { + let max_to = doc.text().len_chars().saturating_sub(1); + let to = std::cmp::min(max_to, range.to() + 1); ( range.from(), - range.to() + 1, - Some(text.repeat(range.to() - range.from() + 1).into()), + to, + Some(text.repeat(to - range.from()).into()), ) });