diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2011-10-17 14:12:15 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2011-10-17 14:12:15 +0000 |
| commit | 53ce1e016af574081cbe84d01547fd72d3b1a133 (patch) | |
| tree | 4c2df3d9f8e7e8a8f643c700345075999a59d7fe /src/buffer.cc | |
| parent | dc74934e59c89582153e21e345f204a3b3e8b794 (diff) | |
Buffer: move struct Modification out of class, as BufferModification
Diffstat (limited to 'src/buffer.cc')
| -rw-r--r-- | src/buffer.cc | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/buffer.cc b/src/buffer.cc index 4e3bb5c3..e1ea7f6b 100644 --- a/src/buffer.cc +++ b/src/buffer.cc @@ -149,13 +149,14 @@ Buffer::Buffer(const std::string& name, Type type, void Buffer::erase(const BufferIterator& begin, const BufferIterator& end) { - append_modification(Modification(Modification::Erase, begin, string(begin, end))); + append_modification(BufferModification(BufferModification::Erase, + begin, string(begin, end))); do_erase(begin, end); } void Buffer::insert(const BufferIterator& position, const BufferString& string) { - append_modification(Modification(Modification::Insert, position, string)); + append_modification(BufferModification(BufferModification::Insert, position, string)); do_insert(position, string); } @@ -277,16 +278,16 @@ void Buffer::end_undo_group() m_current_undo_group.clear(); } -Buffer::Modification Buffer::Modification::inverse() const +BufferModification BufferModification::inverse() const { - Modification::Type inverse_type; + Type inverse_type; switch (type) { - case Modification::Insert: inverse_type = Erase; break; - case Modification::Erase: inverse_type = Insert; break; + case Insert: inverse_type = Erase; break; + case Erase: inverse_type = Insert; break; default: assert(false); } - return Modification(inverse_type, position, content); + return BufferModification(inverse_type, position, content); } bool Buffer::undo() @@ -296,7 +297,7 @@ bool Buffer::undo() --m_history_cursor; - for (const Modification& modification : reversed(*m_history_cursor)) + for (const BufferModification& modification : reversed(*m_history_cursor)) replay_modification(modification.inverse()); } @@ -305,20 +306,20 @@ bool Buffer::redo() if (m_history_cursor == m_history.end()) return false; - for (const Modification& modification : *m_history_cursor) + for (const BufferModification& modification : *m_history_cursor) replay_modification(modification); ++m_history_cursor; } -void Buffer::replay_modification(const Modification& modification) +void Buffer::replay_modification(const BufferModification& modification) { switch (modification.type) { - case Modification::Insert: + case BufferModification::Insert: do_insert(modification.position, modification.content); break; - case Modification::Erase: + case BufferModification::Erase: { BufferIterator begin = modification.position; BufferIterator end = begin + modification.content.size(); @@ -331,9 +332,9 @@ void Buffer::replay_modification(const Modification& modification) } } -void Buffer::append_modification(Modification&& modification) +void Buffer::append_modification(BufferModification&& modification) { - m_current_undo_group.push_back(modification); + m_current_undo_group.push_back(std::move(modification)); } Window* Buffer::get_or_create_window() |
