diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-11-20 19:47:56 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-11-20 19:47:56 +0100 |
| commit | 8bbfbc8c72330dded76c5c3bd6a6a67724739639 (patch) | |
| tree | efc8a3bd822c97c9240b1bde971504fdef7e6f33 /src/buffer.hh | |
| parent | 0b14f387d439c5c1e29133e28ee3da4ab868757a (diff) | |
Buffer: replace Buffer::Type with Buffer::Flags
Diffstat (limited to 'src/buffer.hh')
| -rw-r--r-- | src/buffer.hh | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/src/buffer.hh b/src/buffer.hh index 807f8acd..0d1ffa92 100644 --- a/src/buffer.hh +++ b/src/buffer.hh @@ -95,20 +95,22 @@ public: class Buffer : public SafeCountable { public: - enum class Type + enum class Flags { - File, - NewFile, - Scratch + None = 0, + File = 1, + New = 2, + Fifo = 4 }; - Buffer(String name, Type type, String initial_content = "\n"); + Buffer(String name, Flags flags, String initial_content = "\n"); Buffer(const Buffer&) = delete; Buffer(Buffer&&) = delete; Buffer& operator= (const Buffer&) = delete; ~Buffer(); - Type type() const { return m_type; } + Flags flags() const { return m_flags; } + Flags& flags() { return m_flags; } void insert(BufferIterator pos, String content); void erase(BufferIterator begin, BufferIterator end); @@ -207,7 +209,7 @@ private: void do_erase(const BufferIterator& begin, const BufferIterator& end); String m_name; - const Type m_type; + Flags m_flags; struct Modification; typedef std::vector<Modification> UndoGroup; @@ -232,6 +234,34 @@ private: HookManager m_hook_manager; }; +constexpr Buffer::Flags operator|(Buffer::Flags lhs, Buffer::Flags rhs) +{ + return (Buffer::Flags)((int) lhs | (int) rhs); +} + +inline Buffer::Flags& operator|=(Buffer::Flags& lhs, Buffer::Flags rhs) +{ + (int&) lhs |= (int) rhs; + return lhs; +} + +constexpr bool operator&(Buffer::Flags lhs, Buffer::Flags rhs) +{ + return ((int) lhs & (int) rhs) != 0; +} + +inline Buffer::Flags& operator&=(Buffer::Flags& lhs, Buffer::Flags rhs) +{ + (int&) lhs &= (int) rhs; + return lhs; +} + +constexpr Buffer::Flags operator~(Buffer::Flags lhs) +{ + return (Buffer::Flags)(~(int)lhs); +} + + } #include "buffer_iterator.inl.hh" |
