From f83d5672f830d49e9ff9fa2f5df8144d0e362e56 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Sun, 15 Dec 2013 20:52:57 +0000 Subject: Fix replace_with_char behaviour, keep the same selections --- src/normal.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/normal.cc') diff --git a/src/normal.cc b/src/normal.cc index 6bdab3c1..052d1fd5 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -374,9 +374,14 @@ void replace_with_char(Context& context, int) return; ScopedEdition edition(context); Buffer& buffer = context.buffer(); - SelectionList selections = context.selections(); - select_all_matches(buffer, selections, Regex{"."}); - insert(buffer, selections, codepoint_to_str(key.key)); + SelectionList& selections = context.selections(); + std::vector strings; + for (auto& sel : selections) + { + CharCount count = char_length(buffer, sel); + strings.emplace_back(key.key, count); + } + insert(buffer, selections, strings); }, "replace with char", "enter char to replace with\n"); } -- cgit v1.2.3