diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-07 16:14:46 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-07 15:14:46 +0200 |
| commit | e7d8220788b4fa7c266a1e4457591b694478771c (patch) | |
| tree | 272303d74e0b58c11f9c0c434dae8335d3d06703 /src/platform/windows.rs | |
| parent | 482818130407691154d1635d4029b95d0e730104 (diff) | |
fix: preserve sessions after interrupted pane exits (#3418)
* fix: preserve sessions when pane shells are signaled
refs #3415
* fix: preserve shutdown checkpoints across platforms
refs #3415
---------
Co-authored-by: Jonathan Liebig <jonathan.liebig@gmail.com>
Diffstat (limited to 'src/platform/windows.rs')
| -rw-r--r-- | src/platform/windows.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/platform/windows.rs b/src/platform/windows.rs index ce0afedb..4deb1864 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -15,6 +15,15 @@ use std::{ mod clipboard_image; +pub(crate) fn classify_child_exit(status: &portable_pty::ExitStatus) -> super::ChildExitReason { + // STATUS_CONTROL_C_EXIT is reported without a Unix signal by portable-pty. + if status.exit_code() == 0xC000013A { + super::ChildExitReason::Interrupted + } else { + super::ChildExitReason::Exited + } +} + pub(crate) fn wait_client_stream_readable( _stream: &crate::ipc::LocalStream, ) -> std::io::Result<()> { |
