diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-03-31 15:21:14 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-03-31 15:21:14 +0000 |
| commit | 07e1fcf67b830a22a59eb61671a7ba603954a2a9 (patch) | |
| tree | 8a8544e209b39f1178bc25704d7ceeaf61903f78 /src | |
| parent | f63320b19e84ff4a8fe971f93373f43aa56c6230 (diff) | |
specialize BufferIterator::operator--
Diffstat (limited to 'src')
| -rw-r--r-- | src/buffer_iterator.inl.hh | 13 |
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 |
