summaryrefslogtreecommitdiff
path: root/src/buffer.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-10-17 14:12:15 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-10-17 14:12:15 +0000
commit53ce1e016af574081cbe84d01547fd72d3b1a133 (patch)
tree4c2df3d9f8e7e8a8f643c700345075999a59d7fe /src/buffer.hh
parentdc74934e59c89582153e21e345f204a3b3e8b794 (diff)
Buffer: move struct Modification out of class, as BufferModification
Diffstat (limited to 'src/buffer.hh')
-rw-r--r--src/buffer.hh36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/buffer.hh b/src/buffer.hh
index d30a125e..d860b9d4 100644
--- a/src/buffer.hh
+++ b/src/buffer.hh
@@ -72,6 +72,21 @@ private:
friend class Buffer;
};
+struct BufferModification
+{
+ enum Type { Insert, Erase };
+
+ Type type;
+ BufferIterator position;
+ BufferString content;
+
+ BufferModification(Type type, BufferIterator position,
+ BufferString content)
+ : type(type), position(position), content(content) {}
+
+ BufferModification inverse() const;
+};
+
class Buffer
{
public:
@@ -142,29 +157,16 @@ private:
std::string m_name;
const Type m_type;
- struct Modification
- {
- enum Type { Insert, Erase };
-
- Type type;
- BufferIterator position;
- BufferString content;
-
- Modification(Type type, BufferIterator position, BufferString content)
- : type(type), position(position), content(content) {}
-
- Modification inverse() const;
- };
- typedef std::vector<Modification> UndoGroup;
+ typedef std::vector<BufferModification> UndoGroup;
std::vector<UndoGroup> m_history;
std::vector<UndoGroup>::iterator m_history_cursor;
UndoGroup m_current_undo_group;
- void replay_modification(const Modification& modification);
- void revert_modification(const Modification& modification);
+ void replay_modification(const BufferModification& modification);
+ void revert_modification(const BufferModification& modification);
- void append_modification(Modification&& modification);
+ void append_modification(BufferModification&& modification);
std::list<std::unique_ptr<Window>> m_windows;