fix(ansi): pad line end when erasing characters (#2259)

This commit is contained in:
Aram Drevekenin 2023-03-09 16:58:15 +01:00 committed by GitHub
parent aa17374d13
commit 263f5cbfd2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 85 additions and 77 deletions

View file

@ -1616,10 +1616,17 @@ impl Grid {
} }
self.output_buffer.update_line(self.cursor.y); self.output_buffer.update_line(self.cursor.y);
} }
pub fn erase_characters(&mut self, count: usize, empty_char_style: CharacterStyles) { fn erase_characters(&mut self, count: usize, empty_char_style: CharacterStyles) {
let mut empty_character = EMPTY_TERMINAL_CHARACTER; let mut empty_character = EMPTY_TERMINAL_CHARACTER;
empty_character.styles = empty_char_style; empty_character.styles = empty_char_style;
let current_row = self.viewport.get_mut(self.cursor.y).unwrap(); let current_row = self.viewport.get_mut(self.cursor.y).unwrap();
// pad row if needed
if current_row.width_cached() < self.width {
let padding_count = self.width - current_row.width_cached();
let mut columns_padding = VecDeque::from(vec![EMPTY_TERMINAL_CHARACTER; padding_count]);
current_row.columns.append(&mut columns_padding);
}
for _ in 0..count { for _ in 0..count {
let deleted_character = current_row.delete_and_return_character(self.cursor.x); let deleted_character = current_row.delete_and_return_character(self.cursor.x);
let excess_width = deleted_character let excess_width = deleted_character
@ -1629,6 +1636,7 @@ impl Grid {
for _ in 0..excess_width { for _ in 0..excess_width {
current_row.insert_character_at(empty_character, self.cursor.x); current_row.insert_character_at(empty_character, self.cursor.x);
} }
current_row.push(empty_character);
} }
self.output_buffer.update_line(self.cursor.y); self.output_buffer.update_line(self.cursor.y);
} }

View file

@ -1,6 +1,6 @@
--- ---
source: zellij-server/src/panes/./unit/grid_tests.rs source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 831 assertion_line: 833
expression: "format!(\"{:?}\", grid)" expression: "format!(\"{:?}\", grid)"
--- ---
00 (C): [aram@green zellij]$ 🏠🏠🏠 00 (C): [aram@green zellij]$ 🏠🏠🏠

View file

@ -1,6 +1,6 @@
--- ---
source: zellij-server/src/panes/./unit/grid_tests.rs source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 809 assertion_line: 811
expression: "format!(\"{:?}\", grid)" expression: "format!(\"{:?}\", grid)"
--- ---
00 (C): [aram@green zellij]$ 🏠 def abc 00 (C): [aram@green zellij]$ 🏠 def abc

View file

@ -1,6 +1,6 @@
--- ---
source: zellij-server/src/panes/./unit/grid_tests.rs source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 941 assertion_line: 943
expression: "format!(\"{:?}\", grid)" expression: "format!(\"{:?}\", grid)"
--- ---
00 (C): 12 4 00 (C): 12 4

View file

@ -1,7 +1,7 @@
--- ---
source: zellij-server/src/panes/./unit/grid_tests.rs source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 1432
expression: "format!(\"{:?}\", grid)" expression: "format!(\"{:?}\", grid)"
--- ---
00 (C): 00 (C):
01 (C): 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running 01 (C): 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running

View file

@ -1,6 +1,6 @@
--- ---
source: zellij-server/src/panes/./unit/grid_tests.rs source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 465 assertion_line: 569
expression: "format!(\"{:?}\", grid)" expression: "format!(\"{:?}\", grid)"
--- ---
00 (C): ABAAAAAAAAAAAAAAAAA 00 (C): ABAAAAAAAAAAAAAAAAA

View file

@ -1,7 +1,7 @@
--- ---
source: zellij-server/src/panes/./unit/grid_tests.rs source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 591
expression: "format!(\"{:?}\", grid)" expression: "format!(\"{:?}\", grid)"
--- ---
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

View file

@ -1,7 +1,7 @@
--- ---
source: zellij-server/src/panes/./unit/grid_tests.rs source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 613
expression: "format!(\"{:?}\", grid)" expression: "format!(\"{:?}\", grid)"
--- ---
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB