summaryrefslogtreecommitdiff
path: root/src/display_buffer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/display_buffer.cc')
-rw-r--r--src/display_buffer.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/display_buffer.cc b/src/display_buffer.cc
index 55772b6b..8cda0c47 100644
--- a/src/display_buffer.cc
+++ b/src/display_buffer.cc
@@ -94,6 +94,19 @@ DisplayLine::iterator DisplayLine::split(iterator it, ByteCoord pos)
return m_atoms.insert(it, std::move(atom));
}
+DisplayLine::iterator DisplayLine::split(iterator it, CharCount pos)
+{
+ kak_assert(it->type() == DisplayAtom::Text);
+ kak_assert(pos > 0);
+ kak_assert(pos < it->length());
+
+ DisplayAtom atom(it->m_text.substr(0, pos).str());
+ it->m_text = it->m_text.substr(pos).str();
+ atom.check_invariant();
+ it->check_invariant();
+ return m_atoms.insert(it, std::move(atom));
+}
+
DisplayLine::iterator DisplayLine::insert(iterator it, DisplayAtom atom)
{
if (atom.has_buffer_range())