summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-03-31 15:21:14 +0000
committerMaxime Coste <frrrwww@gmail.com>2012-03-31 15:21:14 +0000
commit07e1fcf67b830a22a59eb61671a7ba603954a2a9 (patch)
tree8a8544e209b39f1178bc25704d7ceeaf61903f78 /src
parentf63320b19e84ff4a8fe971f93373f43aa56c6230 (diff)
specialize BufferIterator::operator--
Diffstat (limited to 'src')
-rw-r--r--src/buffer_iterator.inl.hh13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/buffer_iterator.inl.hh b/src/buffer_iterator.inl.hh
index 034310b1..93517faa 100644
--- a/src/buffer_iterator.inl.hh
+++ b/src/buffer_iterator.inl.hh
@@ -202,11 +202,22 @@ inline BufferIterator& BufferIterator::operator++()
++m_coord.line;
m_coord.column = 0;
}
+ return *this;
}
inline BufferIterator& BufferIterator::operator--()
{
- return (*this -= 1);
+ if (column() == 0)
+ {
+ if (line() > 0)
+ {
+ --m_coord.line;
+ m_coord.column = m_buffer->m_lines[m_coord.line].length() - 1;
+ }
+ }
+ else
+ --m_coord.column;
+ return *this;
}
inline bool BufferIterator::is_begin() const