From bc1da5525e97164389eb9466ccf62a76c78c5942 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 5 Nov 2023 08:38:04 +0530 Subject: [PATCH] ssh kitten: Fix restore state not being called after interrupt --- kittens/ssh/main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kittens/ssh/main.go b/kittens/ssh/main.go index df28dde0f..4792b355e 100644 --- a/kittens/ssh/main.go +++ b/kittens/ssh/main.go @@ -731,9 +731,12 @@ func run_ssh(ssh_args, server_args, found_extra_args []string) (rc int, err erro if escape_codes_to_set_colors != "" { restore_escape_codes += "\x1b[#Q" } + sigs := make(chan os.Signal, 8) + signal.Notify(sigs, unix.SIGINT, unix.SIGTERM) defer func() { _ = term.WriteAllString(restore_escape_codes) term.RestoreAndClose() + signal.Reset() }() err = get_remote_command(&cd) if err != nil { @@ -746,8 +749,6 @@ func run_ssh(ssh_args, server_args, found_extra_args []string) (rc int, err erro if err != nil { return 1, err } - sigs := make(chan os.Signal, 8) - signal.Notify(sigs, unix.SIGINT, unix.SIGTERM) if !cd.request_data { rq := fmt.Sprintf("id=%s:pwfile=%s:pw=%s", cd.replacements["REQUEST_ID"], cd.replacements["PASSWORD_FILENAME"], cd.replacements["DATA_PASSWORD"]) @@ -772,7 +773,6 @@ func run_ssh(ssh_args, server_args, found_extra_args []string) (rc int, err erro }() err = c.Wait() drain_potential_tty_garbage(term) - signal.Reset(unix.SIGINT, unix.SIGTERM) if err != nil { var exit_err *exec.ExitError if errors.As(err, &exit_err) {