diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2013-05-23 14:17:25 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2013-05-30 13:59:38 +0200 |
| commit | 7f17644a6bfcaee2fd6c5a013da70d7c018dced3 (patch) | |
| tree | 606b0e33668bbdb8dc394d6bd93b5a56a090bad7 /src/editor.cc | |
| parent | 2902cc32757b53081bef759f267c0df2b1a7b813 (diff) | |
Buffer insert and erase takes coord rather than iterators
Diffstat (limited to 'src/editor.cc')
| -rw-r--r-- | src/editor.cc | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/editor.cc b/src/editor.cc index 74fab23f..5e7115be 100644 --- a/src/editor.cc +++ b/src/editor.cc @@ -38,7 +38,7 @@ void Editor::erase() scoped_edition edition(*this); for (auto& sel : m_selections) { - m_buffer->erase(sel.begin(), sel.end()); + m_buffer->erase(sel.begin().coord(), sel.end().coord()); avoid_eol(sel); } } @@ -53,7 +53,7 @@ static BufferIterator prepare_insert(Buffer& buffer, const Selection& sel, case InsertMode::Replace: { BufferIterator pos = sel.begin(); - buffer.erase(sel.begin(), sel.end()); + buffer.erase(sel.begin().coord(), sel.end().coord()); return pos; } case InsertMode::Append: @@ -72,17 +72,14 @@ static BufferIterator prepare_insert(Buffer& buffer, const Selection& sel, case InsertMode::InsertAtNextLineBegin: return buffer.iterator_at_line_end(sel.end()-1); case InsertMode::OpenLineBelow: - { - LineCount line = (sel.end() - 1).line(); - buffer.insert(buffer.iterator_at_line_end(line), "\n"); - return buffer.iterator_at_line_begin(line + 1); - } case InsertMode::OpenLineAbove: { - auto pos = buffer.iterator_at_line_begin(sel.begin()); - buffer.insert(pos, "\n"); - return pos; + auto line = mode == InsertMode::OpenLineAbove ? + sel.begin().line() : (sel.end() - 1).line() + 1; + buffer.insert(line, "\n"); + return {buffer, line}; } + } kak_assert(false); return BufferIterator{}; |
