m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-16 23:33:39 -05:00

Fix CTRL-Z handling

Fix #3802

This fixes `xterm -e fzf` hangs on CTRL-Z

* Replace SIGSTOP with SIGTSTP
* Do not rely on SIGCONT
This commit is contained in:
Junegunn Choi
2024-08-29 16:41:52 +09:00
parent a09c6e991a
commit 0eee95af57
3 changed files with 3 additions and 25 deletions

View File

@@ -854,7 +854,6 @@ func NewTerminal(opts *Options, eventBox *util.EventBox, executor *util.Executor
mutex: sync.Mutex{},
uiMutex: sync.Mutex{},
suppress: true,
sigstop: false,
slab: util.MakeSlab(slab16Size, slab32Size),
theme: opts.Theme,
startChan: make(chan fitpad, 1),
@@ -3437,19 +3436,6 @@ func (t *Terminal) Loop() error {
}
}()
contChan := make(chan os.Signal, 1)
notifyOnCont(contChan)
go func() {
for {
select {
case <-ctx.Done():
return
case <-contChan:
t.reqBox.Set(reqReinit, nil)
}
}
}()
if !t.tui.ShouldEmitResizeEvent() {
resizeChan := make(chan os.Signal, 1)
notifyOnResize(resizeChan) // Non-portable
@@ -3787,7 +3773,7 @@ func (t *Terminal) Loop() error {
case reqRedrawPreviewLabel:
t.printLabel(t.pborder, t.previewLabel, t.previewLabelOpts, t.previewLabelLen, t.previewOpts.border, true)
case reqReinit:
t.tui.Resume(t.fullscreen, t.sigstop)
t.tui.Resume(t.fullscreen, true)
t.fullRedraw()
case reqResize, reqFullRedraw:
if req == reqResize {
@@ -4527,11 +4513,11 @@ func (t *Terminal) Loop() error {
case actSigStop:
p, err := os.FindProcess(os.Getpid())
if err == nil {
t.sigstop = true
t.tui.Clear()
t.tui.Pause(t.fullscreen)
notifyStop(p)
t.mutex.Unlock()
t.reqBox.Set(reqReinit, nil)
return false
}
case actMouse: