change cbreak functions to panic rather than return an error on failure
This commit is contained in:
parent
6ea5754e57
commit
27c1e0572a
30
cui/cui.go
30
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)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
13
main.go
13
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
|
||||
|
|
Loading…
Reference in New Issue