No need to use /bin/sh to execute stty and tput

This commit is contained in:
Junegunn Choi 2017-01-11 21:48:36 +09:00
parent 996dcb14a3
commit f8082bc53a
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627

View File

@ -3,6 +3,7 @@ package tui
import ( import (
"fmt" "fmt"
"os" "os"
"os/exec"
"strconv" "strconv"
"strings" "strings"
"syscall" "syscall"
@ -104,7 +105,7 @@ func NewLightRenderer(theme *ColorTheme, forceBlack bool, mouse bool, tabstop in
} }
func (r *LightRenderer) defaultTheme() *ColorTheme { func (r *LightRenderer) defaultTheme() *ColorTheme {
colors, err := util.ExecCommand("tput colors").Output() colors, err := exec.Command("tput", "colors").Output()
if err == nil && atoi(strings.TrimSpace(string(colors)), 16) > 16 { if err == nil && atoi(strings.TrimSpace(string(colors)), 16) > 16 {
return Dark256 return Dark256
} }
@ -112,7 +113,7 @@ func (r *LightRenderer) defaultTheme() *ColorTheme {
} }
func (r *LightRenderer) stty(cmd string) string { func (r *LightRenderer) stty(cmd string) string {
proc := util.ExecCommand("stty " + cmd) proc := exec.Command("stty", cmd)
proc.Stdin = r.ttyin proc.Stdin = r.ttyin
out, err := proc.Output() out, err := proc.Output()
if err != nil { if err != nil {
@ -485,7 +486,7 @@ func (r *LightRenderer) mouseSequence(sz *int) Event {
} }
func (r *LightRenderer) Pause() { func (r *LightRenderer) Pause() {
r.stty(fmt.Sprintf("%q", r.ostty)) r.stty(r.ostty)
r.csi("?1049h") r.csi("?1049h")
r.flush() r.flush()
} }
@ -524,7 +525,7 @@ func (r *LightRenderer) Close() {
r.csi("A") r.csi("A")
} }
r.flush() r.flush()
r.stty(fmt.Sprintf("%q", r.ostty)) r.stty(r.ostty)
} }
func (r *LightRenderer) MaxX() int { func (r *LightRenderer) MaxX() int {