diff --git a/ui/lastline.go b/ui/lastline.go index 70f1cf9..9d4e5ba 100644 --- a/ui/lastline.go +++ b/ui/lastline.go @@ -19,8 +19,6 @@ import ( "github.com/gcla/termshark/v2/theme" "github.com/gcla/termshark/v2/widgets/mapkeys" "github.com/gcla/termshark/v2/widgets/minibuffer" - "github.com/gdamore/tcell/terminfo" - "github.com/gdamore/tcell/terminfo/dynamic" "github.com/rakyll/statik/fs" "github.com/shibukawa/configdir" @@ -311,15 +309,6 @@ func parseOnOff(str string) (bool, error) { return false, strconv.ErrSyntax } -func validateTerm(term string) error { - var err error - _, err = terminfo.LookupTerminfo(term) - if err != nil { - _, _, err = dynamic.LoadTerminfo(term) - } - return err -} - type setCommand struct{} var _ minibuffer.IAction = setCommand{} @@ -359,7 +348,7 @@ func (d setCommand) Run(app gowid.IApp, args ...string) error { OpenMessage(fmt.Sprintf("Packet colors are now %s", gwutil.If(b, "on", "off").(string)), appView, app) } case "term": - if err = validateTerm(args[2]); err == nil { + if err = termshark.ValidateTerm(args[2]); err == nil { termshark.SetConf("main.term", args[2]) OpenMessage(fmt.Sprintf("Terminal type is now %s\n(Requires restart)", args[2]), appView, app) } diff --git a/ui/switchterm.go b/ui/switchterm.go index c505cbe..87f505e 100644 --- a/ui/switchterm.go +++ b/ui/switchterm.go @@ -48,7 +48,7 @@ func SuggestSwitchingTerm(app gowid.IApp) { term256 := term + "-256color" switchTerm = dialog.New( - framed.NewSpace(paragraph.New(fmt.Sprintf("Termshark is running with TERM=%s. Your terminal database contains %s. Would you like to switch for a more colorful experience? Termshark will need to restart.", term, term256))), + framed.NewSpace(paragraph.New(fmt.Sprintf("Termshark is running with TERM=%s. The terminal database contains %s. Would you like to switch for a more colorful experience? Termshark will need to restart.", term, term256))), dialog.Options{ Buttons: []dialog.Button{Yes, No, NoAsk}, NoShadow: true, diff --git a/utils.go b/utils.go index 71918ed..8588ea7 100644 --- a/utils.go +++ b/utils.go @@ -40,6 +40,7 @@ import ( "github.com/gcla/termshark/v2/system" "github.com/gcla/termshark/v2/widgets/resizable" "github.com/gdamore/tcell" + "github.com/gdamore/tcell/terminfo" "github.com/gdamore/tcell/terminfo/dynamic" "github.com/mattn/go-isatty" "github.com/pkg/errors" @@ -1327,8 +1328,16 @@ func FileSizeDifferentTo(filename string, cur int64) (int64, bool) { } func Does256ColorTermExist() error { - _, _, e := dynamic.LoadTerminfo(fmt.Sprintf("%s-256color", os.Getenv("TERM"))) - return e + return ValidateTerm(fmt.Sprintf("%s-256color", os.Getenv("TERM"))) +} + +func ValidateTerm(term string) error { + var err error + _, err = terminfo.LookupTerminfo(term) + if err != nil { + _, _, err = dynamic.LoadTerminfo(term) + } + return err } //======================================================================