diff --git a/gilo.go b/gilo.go index 2eea5ae..248949f 100644 --- a/gilo.go +++ b/gilo.go @@ -1,14 +1,25 @@ package main import ( + "fmt" + "golang.org/x/term" "timshome.page/gilo/editor" "timshome.page/gilo/terminal" ) +func cleanup(oldState *term.State) { + defer terminal.RawOff(oldState) + + // Recover from panic to allow restoring terminal state + if a := recover(); a != nil { + fmt.Println("RECOVER", a) + } +} + func main() { // Go to proper raw mode, but restore canonical mode at exit oldState := terminal.RawOn() - defer terminal.RawOff(oldState) + defer cleanup(oldState) e := editor.New()