summaryrefslogtreecommitdiffstats
path: root/zellij-server/src/panes
diff options
context:
space:
mode:
author朱李 <wanlisnx@gmail.com>2023-01-14 01:23:21 +0800
committerGitHub <noreply@github.com>2023-01-13 18:23:21 +0100
commitf07c1afea7dcff4011fba3f2e88a7f3225613564 (patch)
tree74452112f37e666995459d452a3bef7bfdd44fd7 /zellij-server/src/panes
parent223b7a129c139d9c263ce823b723124eaaa3cb14 (diff)
fix: wide-char drop on resize to 1 and invalid session names (#2082)
* fix: deny invalid session name * fix: `zellij attach --create SESSION_NAME` check session name * fix: drain_until(1) discard widechar * style(grid): add comment explaining the change Co-authored-by: Aram Drevekenin <aram@poor.dev>
Diffstat (limited to 'zellij-server/src/panes')
-rw-r--r--zellij-server/src/panes/grid.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/zellij-server/src/panes/grid.rs b/zellij-server/src/panes/grid.rs
index b3ee85a44..b71687ea2 100644
--- a/zellij-server/src/panes/grid.rs
+++ b/zellij-server/src/panes/grid.rs
@@ -3218,7 +3218,9 @@ impl Row {
let mut drained_part: VecDeque<TerminalCharacter> = VecDeque::new();
let mut drained_part_len = 0;
while let Some(next_character) = self.columns.remove(0) {
- if drained_part_len + next_character.width <= x {
+ // drained_part_len == 0 here is so that if the grid is resized
+ // to a size of 1, we won't drop wide characters
+ if drained_part_len + next_character.width <= x || drained_part_len == 0 {
drained_part.push_back(next_character);
drained_part_len += next_character.width;
} else {