diff options
| author | Jeff Carr <[email protected]> | 2024-02-02 11:47:32 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-02-02 11:47:32 -0600 |
| commit | d4c2f8cb1b7514c1afa1d85092988b3ef25cef16 (patch) | |
| tree | 4d521ef65c8ed740d573d2938a01f512a223188d /main.go | |
| parent | d6f1a45c77ca5f8fd92522166c488938797b706b (diff) | |
crippled, but works
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 28 |
1 files changed, 25 insertions, 3 deletions
@@ -118,9 +118,31 @@ func mainGogui() { // it runs SetManagerFunc which passes every input // event (keyboard, mouse, etc) to the function "gocuiEvent()" func gocuiMain() { + defer func() { + if r := recover(); r != nil { + log.Warn("YAHOOOO Recovered in gocuiMain()", r) + log.Warn("Recovered from panic:", r) + me.baseGui.Close() + panic("BUMMER 2") + + // allow gocui to close if possible, then print stack + log.Sleep(1) + os.Stdout = origStdout + os.Stderr = origStderr + me.myTree.SendToolkitPanic() + log.Warn("Stack trace:") + debug.PrintStack() + + // attempt to switch to the nocui toolkit + log.Sleep(1) + me.myTree.SendToolkitLoad("nocui") + // panic("BUMMER") + return + } + }() g, err := gocui.NewGui(gocui.OutputNormal, true) if err != nil { - panic(err) + return } defer g.Close() @@ -135,10 +157,10 @@ func gocuiMain() { g.SetManagerFunc(gocuiEvent) if err := defaultKeybindings(g); err != nil { - panic(err) + // normally panic here } if err := g.MainLoop(); err != nil && !errors.Is(err, gocui.ErrQuit) { - panic(err) + // normally panic here } } |
