summaryrefslogtreecommitdiff
path: root/src/editor.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-01-17 18:46:45 +0100
committerMaxime Coste <frrrwww@gmail.com>2013-01-17 19:49:48 +0100
commit44ca4d23de3508b668736ddad902afdb2a941e38 (patch)
tree5a5dfe3449eb182584f97f5bff01f91b5af8ce70 /src/editor.cc
parent3f01f4bdf5479a81d54ee6174d886489afe50d92 (diff)
Fix sort_and_merge_overlapping
Diffstat (limited to 'src/editor.cc')
-rw-r--r--src/editor.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/editor.cc b/src/editor.cc
index cd1b760f..9fcc0f15 100644
--- a/src/editor.cc
+++ b/src/editor.cc
@@ -142,10 +142,10 @@ static void sort_and_merge_overlapping(SelectionList& selections)
Range back = selections.back();
auto back_rank = std::count_if(selections.begin(), selections.end(),
[&](const Selection& sel)
- { return sel.begin() < back.begin(); });
- std::sort(selections.begin(), selections.end(), compare_selections);
+ { return sel.begin() <= back.begin(); });
+ std::stable_sort(selections.begin(), selections.end(), compare_selections);
if (back_rank < selections.size() - 1)
- std::rotate(selections.begin(), selections.begin() + back_rank + 1,
+ std::rotate(selections.begin(), selections.begin() + back_rank,
selections.end());
assert(selections.back() == back);