From 952729ee03e0939d7a9d893f87f24179cf0eb7cb Mon Sep 17 00:00:00 2001 From: akbash Date: Thu, 13 Aug 2026 03:46:52 +0300 Subject: fix: preserve logical lines in scrollback editor (#2735) refs #2733 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> Co-authored-by: Can Celik --- src/app/input/navigate.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/app') diff --git a/src/app/input/navigate.rs b/src/app/input/navigate.rs index beb2f363..afe9e6e0 100644 --- a/src/app/input/navigate.rs +++ b/src/app/input/navigate.rs @@ -975,7 +975,8 @@ impl App { .state .runtime_for_pane_in_workspace(&self.terminal_runtimes, ws_idx, pane_id) .ok_or_else(|| std::io::Error::other("focused pane has no scrollback runtime"))? - .recent_text(usize::MAX); + .recent_unwrapped_text_snapshot(usize::MAX) + .text; let path = write_scrollback_temp_file(&scrollback)?; @@ -3661,7 +3662,7 @@ navigate_pane_down = "ctrl+j" #[cfg(unix)] #[tokio::test] - async fn edit_scrollback_key_opens_focused_runtime_scrollback_in_editor_pane() { + async fn edit_scrollback_key_preserves_logical_lines_in_editor_pane() { let (_api_tx, api_rx) = tokio::sync::mpsc::unbounded_channel(); let mut app = App::new( &Config::default(), @@ -3675,10 +3676,10 @@ navigate_pane_down = "ctrl+j" workspace.tabs[0].runtimes.insert( root_pane, crate::terminal::TerminalRuntime::test_with_scrollback_bytes( - 20, + 5, 5, 4096, - b"alpha\nbeta\n", + b"ABCDEFGHIJ\r\nKLMNO", ), ); app.state.workspaces = vec![workspace]; @@ -3708,8 +3709,7 @@ navigate_pane_down = "ctrl+j" } let content = wait_for_file(&output_path); - assert!(content.contains("alpha")); - assert!(content.contains("beta")); + assert_eq!(content, "ABCDEFGHIJ\nKLMNO"); assert_eq!(app.state.mode, Mode::Terminal); assert!( app.state.terminals.values().any(|terminal| terminal -- cgit v1.2.3