summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2018-09-27 11:10:49 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2018-09-27 15:54:13 +0900
commit27c40dc6b0cc0402b1602b76202be80841329a1d (patch)
tree5728e6b15eee5f252a3f95942f1d5fb02f1cb570 /src
parent8e34e6fbb48b819b8aeff19f8ea95fac269ebe55 (diff)
Restore STDIN during execute-silent
This allows users to terminate the process with CTRL-C when it hangs.
Diffstat (limited to 'src')
-rw-r--r--src/terminal.go2
-rw-r--r--src/tui/tcell.go12
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() {