aboutsummaryrefslogtreecommitdiffstats
path: root/src/row.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/row.rs')
-rw-r--r--src/row.rs26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/row.rs b/src/row.rs
index 1f65b90..6ef0a80 100644
--- a/src/row.rs
+++ b/src/row.rs
@@ -147,16 +147,16 @@ impl Row {
let mut prev_was_wide = false;
let default_cell = crate::cell::Cell::default();
- let mut prev_pos = if let Some(prev_pos) = prev_pos {
- prev_pos
- } else if wrapping {
- crate::grid::Pos {
- row: row - 1,
- col: self.cols(),
+ let mut prev_pos = prev_pos.unwrap_or_else(|| {
+ if wrapping {
+ crate::grid::Pos {
+ row: row - 1,
+ col: self.cols(),
+ }
+ } else {
+ crate::grid::Pos { row, col: start }
}
- } else {
- crate::grid::Pos { row, col: start }
- };
+ });
let mut prev_attrs = prev_attrs.unwrap_or_default();
let first_cell = &self.cells[usize::from(start)];
@@ -228,8 +228,7 @@ impl Row {
if !wrapping
|| prev_pos.row + 1 != pos.row
|| prev_pos.col
- < self.cols()
- - if cell.is_wide() { 1 } else { 0 }
+ < self.cols() - u16::from(cell.is_wide())
|| pos.col != 0
{
crate::term::MoveFromTo::new(prev_pos, pos)
@@ -304,7 +303,7 @@ impl Row {
&& first_cell == prev_first_cell
&& prev_pos.row + 1 == row
&& prev_pos.col
- >= self.cols() - if prev_first_cell.is_wide() { 1 } else { 0 }
+ >= self.cols() - u16::from(prev_first_cell.is_wide())
{
let first_cell_attrs = first_cell.attrs();
if &prev_attrs != first_cell_attrs {
@@ -387,8 +386,7 @@ impl Row {
if !wrapping
|| prev_pos.row + 1 != pos.row
|| prev_pos.col
- < self.cols()
- - if cell.is_wide() { 1 } else { 0 }
+ < self.cols() - u16::from(cell.is_wide())
|| pos.col != 0
{
crate::term::MoveFromTo::new(prev_pos, pos)