aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/row.rs48
1 files changed, 2 insertions, 46 deletions
diff --git a/src/row.rs b/src/row.rs
index 7b3c2f0..11763c1 100644
--- a/src/row.rs
+++ b/src/row.rs
@@ -234,28 +234,7 @@ impl Row {
prev_pos.col += if cell.is_wide() { 2 } else { 1 };
let cell_contents = cell.contents();
- if prev_pos.col >= self.cols()
- && !self.wrapped
- && cell.is_wide()
- && cell_contents.chars().count() > 1
- {
- // alternately, we could backspace enough to overwrite
- // the second to last character, then ICH and rewrite
- // the second to last character and then reposition,
- // but that's a lot more complicated and not sure if
- // it's worth it for this much of an edge case
- let mut chars = cell_contents.chars();
- let base = chars.next().unwrap();
- let mut bytes = [0; 4];
- contents.extend(base.encode_utf8(&mut bytes).bytes());
- crate::term::Backspace::default().write_buf(contents);
- for c in chars {
- contents
- .extend(c.encode_utf8(&mut bytes).bytes());
- }
- } else {
- contents.extend(cell_contents.as_bytes());
- }
+ contents.extend(cell_contents.as_bytes());
} else if erase.is_none() {
erase = Some((pos.col, attrs));
}
@@ -405,30 +384,7 @@ impl Row {
}
prev_pos.col += if cell.is_wide() { 2 } else { 1 };
- if prev_pos.col >= self.cols()
- && !self.wrapped
- && cell.is_wide()
- && cell.contents().chars().count() > 1
- {
- // alternately, we could backspace enough to overwrite
- // the second to last character, then ICH and rewrite
- // the second to last character and then reposition,
- // but that's a lot more complicated and not sure if
- // it's worth it for this much of an edge case
- let cell_contents = cell.contents();
- let mut chars = cell_contents.chars();
- let base = chars.next().unwrap();
- let mut bytes = [0; 4];
- contents.extend(base.encode_utf8(&mut bytes).bytes());
- crate::term::Backspace::default().write_buf(contents);
- prev_pos.col -= 1;
- for c in chars {
- contents
- .extend(c.encode_utf8(&mut bytes).bytes());
- }
- } else {
- contents.extend(cell.contents().as_bytes());
- }
+ contents.extend(cell.contents().as_bytes());
} else if erase.is_none() {
erase = Some((pos.col, attrs));
}