Try out recover for panic calls
This commit is contained in:
parent
0d5f2d0fcc
commit
c02206233c
13
gilo.go
13
gilo.go
@ -1,14 +1,25 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"golang.org/x/term"
|
||||||
"timshome.page/gilo/editor"
|
"timshome.page/gilo/editor"
|
||||||
"timshome.page/gilo/terminal"
|
"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() {
|
func main() {
|
||||||
// Go to proper raw mode, but restore canonical mode at exit
|
// Go to proper raw mode, but restore canonical mode at exit
|
||||||
oldState := terminal.RawOn()
|
oldState := terminal.RawOn()
|
||||||
defer terminal.RawOff(oldState)
|
defer cleanup(oldState)
|
||||||
|
|
||||||
e := editor.New()
|
e := editor.New()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user