summaryrefslogtreecommitdiff
path: root/src/buffer_iterator.inl.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-01-23 18:52:42 +0100
committerMaxime Coste <frrrwww@gmail.com>2013-01-23 18:52:42 +0100
commit410067282af52c8d6ba17dcf5d3f96d1c644c511 (patch)
treed703cd014e915ac85a238f203b9f303e772399d2 /src/buffer_iterator.inl.hh
parent72cc61c987d29eb4fc41db1c3e2f2c92f9b3ebac (diff)
Buffer: end is either one past last character, or one past last line
Diffstat (limited to 'src/buffer_iterator.inl.hh')
-rw-r--r--src/buffer_iterator.inl.hh8
1 files changed, 6 insertions, 2 deletions
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();
}