add an EOF iterator to track the end of the file and number of lines
This commit is contained in:
parent
301fbf09f1
commit
929bda355f
@ -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()
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user