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);
}
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;
empty_character.styles = empty_char_style;
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 {
let deleted_character = current_row.delete_and_return_character(self.cursor.x);
let excess_width = deleted_character
@ -1629,6 +1636,7 @@ impl Grid {
for _ in 0..excess_width {
current_row.insert_character_at(empty_character, self.cursor.x);
}
current_row.push(empty_character);
}
self.output_buffer.update_line(self.cursor.y);
}

View file

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

View file

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

View file

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

View file

@ -1,7 +1,7 @@
---
source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 1432
expression: "format!(\"{:?}\", grid)"
---
00 (C):
01 (C): 1 [|||||||||| 16.9%] Tasks: 110, 512 thr; 1 running
@ -11,24 +11,24 @@ expression: "format!(\"{:?}\", grid)"
05 (C): Mem[|||||||||||||||||||||||||||||||||||||8.80G/15.3G]
06 (C): Swp[| 2.82M/16.0G]
07 (C):
08 (C): PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
08 (C): PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
09 (C): 20 0 8576 4508 3356 R 1.3 0.0 0:00.11 htop
10 (C): 20 0 171M 10868 7804 S 0.0 0.1 2:08.38 /sbin/init
11 (C): 20 0 107M 29364 28092 S 0.0 0.2 0:03.42 /usr/lib/systemd/systemd-journald
12 (C): 20 0 32648 9568 6616 S 0.0 0.1 0:01.87 /usr/lib/systemd/systemd-udevd
13 (C): 20 0 78060 992 856 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f
10 (C): 20 0 171M 10868 7804 S 0.0 0.1 2:08.38 /sbin/init
11 (C): 20 0 107M 29364 28092 S 0.0 0.2 0:03.42 /usr/lib/systemd/systemd-journald
12 (C): 20 0 32648 9568 6616 S 0.0 0.1 0:01.87 /usr/lib/systemd/systemd-udevd
13 (C): 20 0 78060 992 856 S 0.0 0.0 0:00.00 /usr/bin/lvmetad -f
14 (C): 20 0 6952 4356 3492 S 0.0 0.0 0:57.67 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidf
15 (C): 20 0 14824 7552 5984 S 0.0 0.0 0:12.93 /usr/bin/connmand -n --nodnsproxy
16 (C): 20 0 17696 7940 6696 S 0.0 0.0 0:01.25 /usr/lib/systemd/systemd-logind
17 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:27.24 /usr/bin/dockerd -H fd://
18 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:38.37 /usr/bin/dockerd -H fd://
19 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.01 /usr/bin/dockerd -H fd://
20 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
21 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
22 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
23 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.55 /usr/bin/dockerd -H fd://
24 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:26.19 /usr/bin/dockerd -H fd://
25 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:40.77 /usr/bin/dockerd -H fd://
26 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.26 /usr/bin/dockerd -H fd://
15 (C): 20 0 14824 7552 5984 S 0.0 0.0 0:12.93 /usr/bin/connmand -n --nodnsproxy
16 (C): 20 0 17696 7940 6696 S 0.0 0.0 0:01.25 /usr/lib/systemd/systemd-logind
17 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:27.24 /usr/bin/dockerd -H fd://
18 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:38.37 /usr/bin/dockerd -H fd://
19 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.01 /usr/bin/dockerd -H fd://
20 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
21 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
22 (C): 20 0 1635M 56148 20460 S 0.0 0.3 0:00.00 /usr/bin/dockerd -H fd://
23 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.55 /usr/bin/dockerd -H fd://
24 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:26.19 /usr/bin/dockerd -H fd://
25 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:40.77 /usr/bin/dockerd -H fd://
26 (C): 20 0 1635M 56148 20460 S 0.0 0.3 1:47.26 /usr/bin/dockerd -H fd://
27 (C): F1Help F2Setup F3SearchF4FilterF5Tree F6SortByF7Nice -F8Nice +F9Kill F10Quit

View file

@ -1,9 +1,9 @@
---
source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 465
assertion_line: 569
expression: "format!(\"{:?}\", grid)"
---
00 (C): ABAAAAAAAAAAAAAAAAA
00 (C): ABAAAAAAAAAAAAAAAAA
01 (C):
02 (C):
03 (C): Test of 'Delete Character'. The top line should be 'AB'. Push <RETURN>

View file

@ -1,32 +1,32 @@
---
source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 591
expression: "format!(\"{:?}\", grid)"
---
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
03 (C): The right column should be staggered DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
04 (C): by one. Push <RETURN>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
15 (C): PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
16 (C): QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
17 (C): RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
18 (C): SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
19 (C): TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
20 (C): UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
21 (C): VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
22 (C): WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
23 (C): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
03 (C): The right column should be staggered DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
04 (C): by one. Push <RETURN>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
15 (C): PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
16 (C): QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
17 (C): RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
18 (C): SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
19 (C): TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
20 (C): UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
21 (C): VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
22 (C): WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
23 (C): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
24 (C):
25 (C):
26 (C):

View file

@ -1,32 +1,32 @@
---
source: zellij-server/src/panes/./unit/grid_tests.rs
assertion_line: 613
expression: "format!(\"{:?}\", grid)"
---
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
03 (C): The right column should be staggered
04 (C): by one. Push <RETURN>EEEEEEEEEEEEE
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKK
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLL
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMM
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNN
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOO
15 (C): PPPPPPPPPPPPPPPPPPPPPPPP
16 (C): QQQQQQQQQQQQQQQQQQQQQQQ
17 (C): RRRRRRRRRRRRRRRRRRRRRR
18 (C): SSSSSSSSSSSSSSSSSSSSS
19 (C): TTTTTTTTTTTTTTTTTTTT
20 (C): UUUUUUUUUUUUUUUUUUU
21 (C): VVVVVVVVVVVVVVVVVV
22 (C): WWWWWWWWWWWWWWWWW
23 (C): XXXXXXXXXXXXXXXX
00 (C): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
01 (C): BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
02 (C): CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
03 (C): The right column should be staggered
04 (C): by one. Push <RETURN>EEEEEEEEEEEEE
05 (C): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
06 (C): GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
07 (C): HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
08 (C): IIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
09 (C): JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
10 (C): KKKKKKKKKKKKKKKKKKKKKKKKKKKKK
11 (C): LLLLLLLLLLLLLLLLLLLLLLLLLLLL
12 (C): MMMMMMMMMMMMMMMMMMMMMMMMMMM
13 (C): NNNNNNNNNNNNNNNNNNNNNNNNNN
14 (C): OOOOOOOOOOOOOOOOOOOOOOOOO
15 (C): PPPPPPPPPPPPPPPPPPPPPPPP
16 (C): QQQQQQQQQQQQQQQQQQQQQQQ
17 (C): RRRRRRRRRRRRRRRRRRRRRR
18 (C): SSSSSSSSSSSSSSSSSSSSS
19 (C): TTTTTTTTTTTTTTTTTTTT
20 (C): UUUUUUUUUUUUUUUUUUU
21 (C): VVVVVVVVVVVVVVVVVV
22 (C): WWWWWWWWWWWWWWWWW
23 (C): XXXXXXXXXXXXXXXX
24 (C):
25 (C):
26 (C):