From 54b599c1a72bdb4cf7dfb54074f69f21d3cd275a Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Fri, 10 Aug 2012 14:22:57 +0200 Subject: Buffer: fix corner case in insert --- src/buffer.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/buffer.cc') diff --git a/src/buffer.cc b/src/buffer.cc index 62cefef7..ac54f177 100644 --- a/src/buffer.cc +++ b/src/buffer.cc @@ -273,8 +273,10 @@ void Buffer::insert(const BufferIterator& pos, const String& content) } if (start == 0) line_it = m_lines.insert(line_it, { offset + start - (int)prefix.length(), prefix + content + suffix }); - else + else if (start != content.length() or not suffix.empty()) line_it = m_lines.insert(line_it, { offset + start, content.substr(start) + suffix }); + else + --line_it; begin_it = pos; end_it = BufferIterator(*this, { int(line_it - m_lines.begin()), int(line_it->length() - suffix.length()) }); -- cgit v1.2.3