add an EOF iterator to track the end of the file and number of lines

This commit is contained in:
Josh Holtrop 2016-12-28 13:03:38 -05:00
parent 301fbf09f1
commit 929bda355f
2 changed files with 9 additions and 3 deletions

View File

@ -8,31 +8,36 @@
Buffer::Buffer()
{
common_initialization();
load_empty_buffer();
common_initialization();
}
Buffer::Buffer(const char * filename)
{
common_initialization();
if (!load_from_file(filename))
{
load_empty_buffer();
}
common_initialization();
}
Buffer::Buffer(const uint8_t * data, size_t data_length)
{
common_initialization();
if (!load_from_memory(data, data_length))
{
load_empty_buffer();
}
common_initialization();
}
void Buffer::common_initialization()
{
m_tabstop = 4u;
m_eof_iterator = add_iterator();
while (m_eof_iterator->valid())
{
m_eof_iterator->go_forward();
}
}
void Buffer::load_empty_buffer()

View File

@ -119,6 +119,7 @@ protected:
bool m_insert_mode;
size_t m_insert_position;
std::list<std::shared_ptr<Iterator>> m_iterators;
std::shared_ptr<Iterator> m_eof_iterator;
std::string m_filename;
void common_initialization();