aboutsummaryrefslogtreecommitdiff
path: root/src/platform/windows.rs
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-07 16:14:46 +0300
committerGitHub <noreply@github.com>2026-09-07 15:14:46 +0200
commite7d8220788b4fa7c266a1e4457591b694478771c (patch)
tree272303d74e0b58c11f9c0c434dae8335d3d06703 /src/platform/windows.rs
parent482818130407691154d1635d4029b95d0e730104 (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.rs9
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<()> {