mirror of
https://github.com/RGBCube/serenity
synced 2025-06-12 02:52:09 +00:00
Fix inserting text in the middle of a chunk.
This commit is contained in:
parent
51092c5b9d
commit
b74fcd0a37
1 changed files with 6 additions and 5 deletions
|
@ -60,12 +60,11 @@ void Line::insert(size_t index, const std::string& text)
|
||||||
|
|
||||||
static FILE* f = fopen("log", "a");
|
static FILE* f = fopen("log", "a");
|
||||||
fprintf(f, "#Column:%zu, Chunk:%zu, Index:%zu\n", index, chunk_index, index_in_chunk);
|
fprintf(f, "#Column:%zu, Chunk:%zu, Index:%zu\n", index, chunk_index, index_in_chunk);
|
||||||
|
|
||||||
auto left_string = chunk.data().substr(0, index_in_chunk);
|
auto left_string = chunk.data().substr(0, index_in_chunk);
|
||||||
auto right_string = chunk.data().substr(index_in_chunk, chunk.length() - index_in_chunk);
|
auto right_string = chunk.data().substr(index_in_chunk, chunk.length() - index_in_chunk);
|
||||||
|
|
||||||
fprintf(f, "#{\"%s\", \"%s\", \"%s\"}\n", left_string.c_str(), text.c_str(), right_string.c_str());
|
fprintf(f, "#{\"%s\", \"%s\", \"%s\"}\n", left_string.c_str(), text.c_str(), right_string.c_str());
|
||||||
fflush(f);
|
|
||||||
|
|
||||||
Chunk left_chunk { left_string };
|
Chunk left_chunk { left_string };
|
||||||
Chunk mid_chunk { text };
|
Chunk mid_chunk { text };
|
||||||
|
@ -76,9 +75,11 @@ void Line::insert(size_t index, const std::string& text)
|
||||||
iterator = m_chunks.begin() + chunk_index;
|
iterator = m_chunks.begin() + chunk_index;
|
||||||
|
|
||||||
// Note reverse insertion order!
|
// Note reverse insertion order!
|
||||||
m_chunks.insert(iterator, right_chunk);
|
iterator = m_chunks.insert(iterator, right_chunk);
|
||||||
m_chunks.insert(iterator, mid_chunk);
|
iterator = m_chunks.insert(iterator, mid_chunk);
|
||||||
m_chunks.insert(iterator, left_chunk);
|
iterator = m_chunks.insert(iterator, left_chunk);
|
||||||
|
|
||||||
|
fflush(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::tuple<size_t, size_t> Line::chunk_index_for_position(size_t position)
|
std::tuple<size_t, size_t> Line::chunk_index_for_position(size_t position)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue