From 27c1e0572a6c8d22848e116e37c76e9e9124ee9a Mon Sep 17 00:00:00 2001 From: Justin Overfelt Date: Wed, 1 May 2019 18:25:45 -0400 Subject: [PATCH] change cbreak functions to panic rather than return an error on failure --- cui/cui.go | 30 +++++++++++------------------- cui/screen.go | 10 ++++------ main.go | 13 +++---------- 3 files changed, 18 insertions(+), 35 deletions(-) diff --git a/cui/cui.go b/cui/cui.go index 8833ba6..508761a 100644 --- a/cui/cui.go +++ b/cui/cui.go @@ -57,10 +57,7 @@ func moveCursorToward(dir string, amount int) { func Exit() { moveCursorToward("down", 500) moveCursorToward("right", 500) - err := SetLineMode() - if err != nil { - panic(err) - } + SetLineMode() fmt.Print("\n") fmt.Print("\033[?25h") @@ -126,10 +123,7 @@ func Getch() rune { } func GetLine() (string, error) { - err := SetLineMode() - if err != nil { - return "", err - } + SetLineMode() reader := bufio.NewReader(os.Stdin) fmt.Print(": ") @@ -138,30 +132,28 @@ func GetLine() (string, error) { return "", err } - err = SetCharMode() - if err != nil { - return "", err - } - + SetCharMode() return text[:len(text)-1], nil } -func SetCharMode() error { +func SetCharMode() { cmd := exec.Command("stty", "cbreak", "-echo") cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout err := cmd.Run() if err != nil { - return err + panic(err) } - _, err = fmt.Print("\033[?25l") - return err + fmt.Print("\033[?25l") } -func SetLineMode() error { +func SetLineMode() { cmd := exec.Command("stty", "-cbreak", "echo") cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout - return cmd.Run() + err := cmd.Run() + if err != nil { + panic(err) + } } diff --git a/cui/screen.go b/cui/screen.go index 1763caa..7b3cdd4 100644 --- a/cui/screen.go +++ b/cui/screen.go @@ -142,7 +142,7 @@ func (s *Screen) GetSize() { // NewScreen is a constructor function that returns a pointer // to a Screen struct -func NewScreen() (*Screen, error) { +func NewScreen() *Screen { if screenInit { fmt.Println("Fatal error: Cannot create multiple screens") os.Exit(1) @@ -152,12 +152,10 @@ func NewScreen() (*Screen, error) { for i := 0; i < s.Height; i++ { fmt.Println() } - err := SetCharMode() - if err != nil { - return nil, err - } + + SetCharMode() Clear("screen") screenInit = true - return &s, nil + return &s } diff --git a/main.go b/main.go index ebc06f9..9326865 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "regexp" "strconv" "strings" + "tildegit.org/sloum/bombadillo/cmdparse" "tildegit.org/sloum/bombadillo/config" "tildegit.org/sloum/bombadillo/cui" @@ -403,16 +404,8 @@ func displayError(err error) { func initClient() error { history.Position = -1 - var err error - screen, err = cui.NewScreen() - if err != nil { - return err - } - - err = cui.SetCharMode() - if err != nil { - return err - } + screen = cui.NewScreen() + cui.SetCharMode() screen.AddWindow(2, 1, screen.Height-2, screen.Width, false, false, true) screen.Windows[0].Active = true