From 929bda355f859a3c73695730d6996cda1b9693a3 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 28 Dec 2016 13:03:38 -0500 Subject: [PATCH] add an EOF iterator to track the end of the file and number of lines --- src/core/Buffer.cc | 11 ++++++++--- src/core/Buffer.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/core/Buffer.cc b/src/core/Buffer.cc index f0fb65e..c01dc45 100644 --- a/src/core/Buffer.cc +++ b/src/core/Buffer.cc @@ -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() diff --git a/src/core/Buffer.h b/src/core/Buffer.h index 74d7513..f1ac5d1 100644 --- a/src/core/Buffer.h +++ b/src/core/Buffer.h @@ -119,6 +119,7 @@ protected: bool m_insert_mode; size_t m_insert_position; std::list> m_iterators; + std::shared_ptr m_eof_iterator; std::string m_filename; void common_initialization();