From 02bd2d2adf73feddd57bdac6c5fbaee56edaf53e Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Tue, 28 Jul 2015 14:35:46 +0900 Subject: [PATCH] Do not proceed if $TERM is invalid Related #305 --- src/curses/curses.go | 5 +++++ test/test_go.rb | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/curses/curses.go b/src/curses/curses.go index 51b68132..3de8e982 100644 --- a/src/curses/curses.go +++ b/src/curses/curses.go @@ -8,6 +8,7 @@ package curses import "C" import ( + "fmt" "os" "os/signal" "syscall" @@ -258,6 +259,10 @@ func Init(theme *ColorTheme, black bool, mouse bool) { C.setlocale(C.LC_ALL, C.CString("")) _screen = C.newterm(nil, C.stderr, C.stdin) + if _screen == nil { + fmt.Println("Invalid $TERM: " + os.Getenv("TERM")) + os.Exit(1) + } C.set_term(_screen) if mouse { C.mousemask(C.ALL_MOUSE_EVENTS, nil) diff --git a/test/test_go.rb b/test/test_go.rb index f702efcb..75fc01ca 100644 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -743,6 +743,11 @@ class TestGoFZF < TestBase tmux.send_keys :Enter end + def test_invalid_term + tmux.send_keys "TERM=xxx fzf", :Enter + tmux.until { |lines| lines.any? { |l| l.include? 'Invalid $TERM: xxx' } } + end + private def writelines path, lines File.unlink path while File.exists? path