From 410067282af52c8d6ba17dcf5d3f96d1c644c511 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 23 Jan 2013 18:52:42 +0100 Subject: Buffer: end is either one past last character, or one past last line --- src/buffer_iterator.inl.hh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/buffer_iterator.inl.hh') diff --git a/src/buffer_iterator.inl.hh b/src/buffer_iterator.inl.hh index 201ea481..1e477561 100644 --- a/src/buffer_iterator.inl.hh +++ b/src/buffer_iterator.inl.hh @@ -116,8 +116,7 @@ inline char BufferIterator::operator*() const inline ByteCount BufferIterator::offset() const { assert(m_buffer); - return line() == 0 ? column() - : m_buffer->m_lines[line()].start + column(); + return m_buffer->m_lines[line()].start + column(); } inline size_t BufferIterator::operator-(const BufferIterator& iterator) const @@ -221,6 +220,11 @@ inline bool BufferIterator::is_begin() const inline bool BufferIterator::is_end() const { assert(m_buffer); + if (m_coord.line == m_buffer->line_count()) + { + assert(m_coord.column == 0); + return true; + } return offset() == m_buffer->character_count(); } -- cgit v1.2.3