diff options
author | 朱李 <wanlisnx@gmail.com> | 2023-01-14 01:23:21 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-13 18:23:21 +0100 |
commit | f07c1afea7dcff4011fba3f2e88a7f3225613564 (patch) | |
tree | 74452112f37e666995459d452a3bef7bfdd44fd7 /zellij-server | |
parent | 223b7a129c139d9c263ce823b723124eaaa3cb14 (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')
-rw-r--r-- | zellij-server/src/panes/grid.rs | 4 |
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 { |