Impreove Window::buffer_coord behaviour with invalid coords

This commit is contained in:
Maxime Coste 2015-03-22 10:07:26 +00:00
parent dbbbc3aa80
commit 7a7f86a205

View File

@ -249,9 +249,13 @@ CharCoord Window::display_position(ByteCoord coord) const
ByteCoord Window::buffer_coord(CharCoord coord) const
{
if (0_line <= coord.line and coord.line < m_display_buffer.lines().size())
return find_buffer_coord(m_display_buffer.lines()[(int)coord.line], buffer(), coord.column);
return { 0, 0 };
if (coord <= 0_line)
coord = {0,0};
if ((int)coord.line >= m_display_buffer.lines().size())
coord = CharCoord{(int)m_display_buffer.lines().size()-1, INT_MAX};
return find_buffer_coord(m_display_buffer.lines()[(int)coord.line],
buffer(), coord.column);
}
ByteCoord Window::offset_coord(ByteCoord coord, CharCount offset)