2011-09-02 18:51:20 +02:00
|
|
|
#include "display_buffer.hh"
|
|
|
|
|
2011-09-29 11:10:27 +02:00
|
|
|
#include "assert.hh"
|
2011-09-29 10:55:08 +02:00
|
|
|
|
2011-09-02 18:51:20 +02:00
|
|
|
namespace Kakoune
|
|
|
|
{
|
|
|
|
|
|
|
|
DisplayBuffer::DisplayBuffer()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2011-10-07 16:19:58 +02:00
|
|
|
DisplayBuffer::iterator DisplayBuffer::split(iterator atom, const BufferIterator& pos)
|
2011-09-29 10:55:08 +02:00
|
|
|
{
|
|
|
|
assert(atom < end());
|
2011-10-07 16:19:58 +02:00
|
|
|
assert(pos > atom->begin);
|
|
|
|
assert(pos < atom->end);
|
|
|
|
DisplayAtom new_atom(atom->begin, pos,
|
2011-09-29 10:55:08 +02:00
|
|
|
atom->fg_color, atom->bg_color, atom->attribute);
|
|
|
|
|
2011-10-07 16:19:58 +02:00
|
|
|
atom->begin = pos;
|
2011-09-29 10:55:08 +02:00
|
|
|
return insert(atom, std::move(new_atom));
|
|
|
|
}
|
|
|
|
|
2011-09-29 11:10:27 +02:00
|
|
|
void DisplayBuffer::check_invariant() const
|
|
|
|
{
|
|
|
|
for (size_t i = 0; i < m_atoms.size(); ++i)
|
|
|
|
{
|
|
|
|
assert(m_atoms[i].end > m_atoms[i].begin);
|
|
|
|
if (i > 0)
|
|
|
|
assert(m_atoms[i-1].end == m_atoms[i].begin);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-09-02 18:51:20 +02:00
|
|
|
}
|