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()
|
Buffer::Buffer()
|
||||||
{
|
{
|
||||||
common_initialization();
|
|
||||||
load_empty_buffer();
|
load_empty_buffer();
|
||||||
|
common_initialization();
|
||||||
}
|
}
|
||||||
|
|
||||||
Buffer::Buffer(const char * filename)
|
Buffer::Buffer(const char * filename)
|
||||||
{
|
{
|
||||||
common_initialization();
|
|
||||||
if (!load_from_file(filename))
|
if (!load_from_file(filename))
|
||||||
{
|
{
|
||||||
load_empty_buffer();
|
load_empty_buffer();
|
||||||
}
|
}
|
||||||
|
common_initialization();
|
||||||
}
|
}
|
||||||
|
|
||||||
Buffer::Buffer(const uint8_t * data, size_t data_length)
|
Buffer::Buffer(const uint8_t * data, size_t data_length)
|
||||||
{
|
{
|
||||||
common_initialization();
|
|
||||||
if (!load_from_memory(data, data_length))
|
if (!load_from_memory(data, data_length))
|
||||||
{
|
{
|
||||||
load_empty_buffer();
|
load_empty_buffer();
|
||||||
}
|
}
|
||||||
|
common_initialization();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Buffer::common_initialization()
|
void Buffer::common_initialization()
|
||||||
{
|
{
|
||||||
m_tabstop = 4u;
|
m_tabstop = 4u;
|
||||||
|
m_eof_iterator = add_iterator();
|
||||||
|
while (m_eof_iterator->valid())
|
||||||
|
{
|
||||||
|
m_eof_iterator->go_forward();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Buffer::load_empty_buffer()
|
void Buffer::load_empty_buffer()
|
||||||
|
@ -119,6 +119,7 @@ protected:
|
|||||||
bool m_insert_mode;
|
bool m_insert_mode;
|
||||||
size_t m_insert_position;
|
size_t m_insert_position;
|
||||||
std::list<std::shared_ptr<Iterator>> m_iterators;
|
std::list<std::shared_ptr<Iterator>> m_iterators;
|
||||||
|
std::shared_ptr<Iterator> m_eof_iterator;
|
||||||
std::string m_filename;
|
std::string m_filename;
|
||||||
|
|
||||||
void common_initialization();
|
void common_initialization();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user