From e64cb933fed1578bba1c3eb4e4f73d0a3c71d4c5 Mon Sep 17 00:00:00 2001 From: Timofey Kovalev Date: Thu, 8 Nov 2018 10:34:45 +0300 Subject: [PATCH] minor error handling fix --- ui_tcell.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/ui_tcell.go b/ui_tcell.go index e626b67..373c52b 100644 --- a/ui_tcell.go +++ b/ui_tcell.go @@ -83,15 +83,19 @@ func (ui *tcellUI) ClearKeybindings() { ui.keybindings = make([]*keybinding, 0) } -func (ui *tcellUI) Run() error { - if err := ui.screen.Init(); err != nil { - return err +func (ui *tcellUI) Run() (err error) { + if err = ui.screen.Init(); err != nil { + return } defer func() { if r := recover(); r != nil { ui.screen.Fini() - logger.Printf("Panic: %s", r) + if e, ok := r.(error); ok { + err = e + } else { + logger.Printf("Panic: %v", r) + } } }() @@ -119,7 +123,7 @@ func (ui *tcellUI) Run() error { for { select { case <-ui.quit: - return nil + return case ev := <-ui.eventQueue: ui.handleEvent(ev) }