mirror of
https://github.com/mawww/kakoune.git
synced 2024-12-24 20:13:00 +03:00
Fix potential assert on itersel selection restoration
We cannot guarantee after an itersel that selections are going to still be in ascending order, but we were calling a SelectionList constructor that was assuming this was the case.
This commit is contained in:
parent
36e7e93f78
commit
9b89652b0b
@ -1662,16 +1662,16 @@ void context_wrap(const ParametersParser& parser, Context& context, Func func)
|
||||
|
||||
update_selections(new_sels, main, c.buffer(), timestamp);
|
||||
timestamp = c.buffer().timestamp();
|
||||
if (&sel == &sels.main())
|
||||
main = new_sels.size() + c.selections().main_index();
|
||||
|
||||
for (auto& sel : c.selections())
|
||||
new_sels.push_back(sel);
|
||||
}
|
||||
}
|
||||
|
||||
if (not draft)
|
||||
{
|
||||
c.selections_write_only() = SelectionList(c.buffer(), std::move(new_sels));
|
||||
c.selections().sort_and_merge_overlapping();
|
||||
}
|
||||
c.selections_write_only().set(std::move(new_sels), main);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
1
test/regression/0-assert-on-itersel/cmd
Normal file
1
test/regression/0-assert-on-itersel/cmd
Normal file
@ -0,0 +1 @@
|
||||
:exec -itersel jj<ret>
|
3
test/regression/0-assert-on-itersel/in
Normal file
3
test/regression/0-assert-on-itersel/in
Normal file
@ -0,0 +1,3 @@
|
||||
line %(1)
|
||||
%(l)ine 2
|
||||
line 3
|
1
test/regression/0-assert-on-itersel/selections
Normal file
1
test/regression/0-assert-on-itersel/selections
Normal file
@ -0,0 +1 @@
|
||||
l:3
|
Loading…
Reference in New Issue
Block a user