diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2011-10-19 14:25:13 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2011-10-19 14:25:13 +0000 |
| commit | d7f934b7ca1b37dd5710e0b058a6ac1f4fe1c9d9 (patch) | |
| tree | b7da948bd84207b3911214d2d417572544cf064c /src/buffer.cc | |
| parent | 7e2f7f6715909dcaf4d826a0ab558dbb2d1db887 (diff) | |
Buffer: iterator_at prevents getting iterators on end of line
Diffstat (limited to 'src/buffer.cc')
| -rw-r--r-- | src/buffer.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/buffer.cc b/src/buffer.cc index 324ecd66..cf60fa84 100644 --- a/src/buffer.cc +++ b/src/buffer.cc @@ -57,8 +57,9 @@ BufferIterator Buffer::iterator_at(const BufferCoord& line_and_column) const if (m_lines.empty()) return begin(); - BufferPos line = Kakoune::clamp<int>(0, m_lines.size() - 1, line_and_column.line); - BufferPos column = Kakoune::clamp<int>(0, line_length(line), line_and_column.column); + BufferPos line = Kakoune::clamp<int>(0, m_lines.size() - 1, line_and_column.line); + int col_max = std::max(0, line_length(line) - 1); + BufferPos column = Kakoune::clamp<int>(0, col_max, line_and_column.column); return BufferIterator(*this, m_lines[line] + column); } |
