From 97980d618f9a79321b511fd23a114eef88c8632f Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Thu, 17 Dec 2020 16:33:18 +0100 Subject: [PATCH] fix(compatibility): fix bash linewrap (#109) --- src/terminal_pane/scroll.rs | 2 +- src/tests/fixtures/bash_cursor_linewrap | Bin 0 -> 1346 bytes src/tests/integration/compatibility.rs | 25 ++++++++++++++ ...compatibility__bash_cursor_linewrap-2.snap | 32 ++++++++++++++++++ ...__compatibility__bash_cursor_linewrap.snap | 32 ++++++++++++++++++ 5 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 src/tests/fixtures/bash_cursor_linewrap create mode 100644 src/tests/integration/snapshots/mosaic__tests__integration__compatibility__bash_cursor_linewrap-2.snap create mode 100644 src/tests/integration/snapshots/mosaic__tests__integration__compatibility__bash_cursor_linewrap.snap diff --git a/src/terminal_pane/scroll.rs b/src/terminal_pane/scroll.rs index 8bd304f1..f86cf5f8 100644 --- a/src/terminal_pane/scroll.rs +++ b/src/terminal_pane/scroll.rs @@ -384,7 +384,7 @@ impl Scroll { .get_mut(wrapped_fragment_index_in_line) .expect("cursor out of bounds"); - if cursor_position_in_line <= self.total_columns { + if cursor_position_in_line < self.total_columns { current_wrapped_fragment.add_character(terminal_character, cursor_position_in_line); self.cursor_position.move_forward(1); } else { diff --git a/src/tests/fixtures/bash_cursor_linewrap b/src/tests/fixtures/bash_cursor_linewrap new file mode 100644 index 0000000000000000000000000000000000000000..2e183a1f56a6c5e71c4ab334b229111cbf2c60fa GIT binary patch literal 1346 zcmcgs%}#?r5awpngeTa`9z1w3VfkO$M2#H#03JvWTe=Df0|^ilFFt@K`WoJRr#^|Z zbZODVhLGr9fSF;w`M#YQvS!QsyveAQRUj=<3$W5^D=nxRk*8-Qarx3;G9U?%i(CEa zxFPJ`-}W~8|HnjdYLaAiCyNy8rfo$Pi%Z&OlHS+3EVsoI&C6ESB5m_WNt;X-g*i7! za_unYWd@nV-1bokPe~HM?)BwLOQ3ae;n_;HblOvuv=k|jVM3W&r>noj> zC;~A^IXz>bq;UFLRC&Kj92{6g& ~/c/mosaic on main ⨯ bash 16:00:06 +[aram@green mosaic]$ 12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345 + + + + + + + + + + + + + + + + + + + + + + + + + +Bye from Mosaic!█ diff --git a/src/tests/integration/snapshots/mosaic__tests__integration__compatibility__bash_cursor_linewrap.snap b/src/tests/integration/snapshots/mosaic__tests__integration__compatibility__bash_cursor_linewrap.snap new file mode 100644 index 00000000..2736e8b8 --- /dev/null +++ b/src/tests/integration/snapshots/mosaic__tests__integration__compatibility__bash_cursor_linewrap.snap @@ -0,0 +1,32 @@ +--- +source: src/tests/integration/compatibility.rs +expression: snapshot +--- +Welcome to fish, the friendly interactive shell +⋊> ~/c/mosaic on main ⨯ bash 16:00:06 +[aram@green mosaic]$ 12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345 +█ + + + + + + + + + + + + + + + + + + + + + + + +