diff --git a/src/core/Buffer.cc b/src/core/Buffer.cc index d8f1c08..6e2f66c 100644 --- a/src/core/Buffer.cc +++ b/src/core/Buffer.cc @@ -22,7 +22,7 @@ Buffer::Buffer(const char * filename) void Buffer::load_empty_buffer() { - m_gap_buffer = std::make_shared(); + m_gap_buffer = std::make_shared(Encoding::UTF_8); m_eol_at_eof = true; } @@ -57,7 +57,7 @@ bool Buffer::load_from_file(const char * filename) size_t loaded_size; text_loader.load_buffer(buffer, file_size, &loaded_size); - m_gap_buffer = std::make_shared(buffer, buffer_size, loaded_size); + m_gap_buffer = std::make_shared(buffer, buffer_size, loaded_size, text_loader.get_encoding()); m_eol_at_eof = text_loader.get_eol_at_eof(); return true; diff --git a/src/core/GapBuffer.cc b/src/core/GapBuffer.cc index 9e0552e..77cda85 100644 --- a/src/core/GapBuffer.cc +++ b/src/core/GapBuffer.cc @@ -1,20 +1,22 @@ #include "GapBuffer.h" #include "System.h" -GapBuffer::GapBuffer() +GapBuffer::GapBuffer(Encoding::Type encoding) { m_buffer = (uint8_t *)System::alloc_pages(1u); m_buffer_size = System::page_size; m_size = 0u; m_gap_position = 0u; + m_encoding = encoding; } -GapBuffer::GapBuffer(uint8_t * buffer, size_t buffer_size, size_t size) +GapBuffer::GapBuffer(uint8_t * buffer, size_t buffer_size, size_t size, Encoding::Type encoding) { m_buffer = buffer; m_buffer_size = buffer_size; m_size = size; m_gap_position = size; + m_encoding = encoding; } GapBuffer::~GapBuffer() diff --git a/src/core/GapBuffer.h b/src/core/GapBuffer.h index ea2a0b2..486323d 100644 --- a/src/core/GapBuffer.h +++ b/src/core/GapBuffer.h @@ -3,12 +3,13 @@ #include #include +#include "Encoding.h" class GapBuffer { public: - GapBuffer(); - GapBuffer(uint8_t * buffer, size_t buffer_size, size_t size); + GapBuffer(Encoding::Type encoding); + GapBuffer(uint8_t * buffer, size_t buffer_size, size_t size, Encoding::Type encoding); ~GapBuffer(); protected: @@ -16,6 +17,7 @@ protected: size_t m_buffer_size; size_t m_size; size_t m_gap_position; + Encoding::Type m_encoding; }; #endif