From 60a57eaf1f7f71e6678af1607581fad369cd6e88 Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Mon, 24 Jun 2024 14:09:51 -0400 Subject: [PATCH] fix: nil deref on release terminal --- tea.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tea.go b/tea.go index 15f80f1193..7ded48b63d 100644 --- a/tea.go +++ b/tea.go @@ -652,15 +652,18 @@ func (p *Program) shutdown(kill bool) { // reader. You can return control to the Program with RestoreTerminal. func (p *Program) ReleaseTerminal() error { atomic.StoreUint32(&p.ignoreSignals, 1) - p.cancelReader.Cancel() + if p.cancelReader != nil { + p.cancelReader.Cancel() + } + p.waitForReadLoop() if p.renderer != nil { p.renderer.stop() + p.altScreenWasActive = p.renderer.altScreen() + p.bpWasActive = p.renderer.bracketedPasteActive() } - p.altScreenWasActive = p.renderer.altScreen() - p.bpWasActive = p.renderer.bracketedPasteActive() return p.restoreTerminalState() }