add Buffer::Iterator::warp_to_offset()

This commit is contained in:
Josh Holtrop 2017-01-07 16:34:01 -05:00
parent 904ac01a1c
commit 6108d09e8d
2 changed files with 22 additions and 0 deletions

View File

@ -180,3 +180,24 @@ bool Buffer::Iterator::go_next_line()
}
return false;
}
void Buffer::Iterator::warp_to_offset(size_t offset)
{
Iterator i = m_buffer->begin();
m_offset = i.m_offset;
m_line = i.m_line;
for (;;)
{
i.go_forward();
if (i.m_offset > offset)
{
break;
}
m_offset = i.m_offset;
m_line = i.m_line;
if (!i.valid())
{
break;
}
}
}

View File

@ -46,6 +46,7 @@ public:
m_offset += offset_offset;
m_line += line_offset;
}
void warp_to_offset(size_t offset);
uint8_t * address() const
{
return m_buffer->address(m_offset);