From 27c40dc6b0cc0402b1602b76202be80841329a1d Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Thu, 27 Sep 2018 11:10:49 +0900 Subject: [PATCH] Restore STDIN during execute-silent This allows users to terminate the process with CTRL-C when it hangs. --- src/terminal.go | 2 ++ src/tui/tcell.go | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/terminal.go b/src/terminal.go index df54e5be..139aacad 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -1309,7 +1309,9 @@ func (t *Terminal) executeCommand(template string, forcePlus bool, background bo t.redraw() t.refresh() } else { + t.tui.Pause(false) cmd.Run() + t.tui.Resume(false) } } diff --git a/src/tui/tcell.go b/src/tui/tcell.go index 5f2b87fe..d337385c 100644 --- a/src/tui/tcell.go +++ b/src/tui/tcell.go @@ -382,12 +382,16 @@ func (r *FullscreenRenderer) GetChar() Event { return Event{Invalid, 0, nil} } -func (r *FullscreenRenderer) Pause(bool) { - _screen.Fini() +func (r *FullscreenRenderer) Pause(clear bool) { + if clear { + _screen.Fini() + } } -func (r *FullscreenRenderer) Resume(bool) { - r.initScreen() +func (r *FullscreenRenderer) Resume(clear bool) { + if clear { + r.initScreen() + } } func (r *FullscreenRenderer) Close() {