Replace \r and \r\n with \n when indexing text into the rope
This commit is contained in:
@@ -58,11 +58,19 @@ impl Rope {
|
||||
pub fn push(&mut self, text: &str) {
|
||||
let mut new_chunks = SmallVec::<[_; 16]>::new();
|
||||
let mut new_chunk = ArrayString::new();
|
||||
for ch in text.chars() {
|
||||
let mut chars = text.chars().peekable();
|
||||
while let Some(mut ch) = chars.next() {
|
||||
if new_chunk.len() + ch.len_utf8() > 2 * CHUNK_BASE {
|
||||
new_chunks.push(Chunk(new_chunk));
|
||||
new_chunk = ArrayString::new();
|
||||
}
|
||||
|
||||
if ch == '\r' {
|
||||
ch = '\n';
|
||||
if chars.peek().copied() == Some('\n') {
|
||||
chars.next();
|
||||
}
|
||||
}
|
||||
new_chunk.push(ch);
|
||||
}
|
||||
if !new_chunk.is_empty() {
|
||||
|
||||
Reference in New Issue
Block a user