add Buffer::get_string() and GapBuffer::get_string()
This commit is contained in:
parent
1404c33a46
commit
e57c71855a
@ -13,6 +13,7 @@ public:
|
|||||||
Buffer(const char * filename = nullptr);
|
Buffer(const char * filename = nullptr);
|
||||||
bool write_to_file(const char * filename);
|
bool write_to_file(const char * filename);
|
||||||
auto add_cursor() { return m_gap_buffer->add_cursor(); }
|
auto add_cursor() { return m_gap_buffer->add_cursor(); }
|
||||||
|
auto get_string() { return m_gap_buffer->get_string(); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool m_eol_at_eof;
|
bool m_eol_at_eof;
|
||||||
|
@ -76,6 +76,18 @@ void GapBuffer::insert(Cursor & insert_cursor, uint32_t code_point)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the contents of the gap buffer as a string.
|
||||||
|
*
|
||||||
|
* This makes a copy of the entire buffer in a std::string. This method is
|
||||||
|
* intended for use by unit tests.
|
||||||
|
*/
|
||||||
|
std::string GapBuffer::get_string()
|
||||||
|
{
|
||||||
|
compact();
|
||||||
|
return std::string((char *)m_buffer, m_size);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verify that there is enough free space in the gap, and if not, grow the gap
|
* Verify that there is enough free space in the gap, and if not, grow the gap
|
||||||
* and move data.
|
* and move data.
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "Encoding.h"
|
#include "Encoding.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
class GapBuffer
|
class GapBuffer
|
||||||
{
|
{
|
||||||
@ -115,6 +116,7 @@ public:
|
|||||||
size_t gap_size() const { return m_buffer_size - m_size; }
|
size_t gap_size() const { return m_buffer_size - m_size; }
|
||||||
void compact();
|
void compact();
|
||||||
void insert(Cursor & insert_cursor, uint32_t code_point);
|
void insert(Cursor & insert_cursor, uint32_t code_point);
|
||||||
|
std::string get_string();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
uint8_t * m_buffer;
|
uint8_t * m_buffer;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user