diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2015-06-07 14:31:44 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2015-06-07 14:31:44 +0900 |
commit | 8017635a71e5e1f2676609f65d65ce835e1700c0 (patch) | |
tree | 4628ef79700de9d59e413587cbc341a4a15f16cb | |
parent | 52771a6226188ec20f2c1bdc481e5c15ac4d119a (diff) | |
parent | 98f62b191a29f21bdd49e32d1c1459d1f96c57b0 (diff) |
Merge pull request #252 from dominikh/portable-swapOutput
Use ncurses's newterm instead of swapping stdout and stderr
-rw-r--r-- | src/curses/curses.go | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/curses/curses.go b/src/curses/curses.go index 985dd87f..fc0fef20 100644 --- a/src/curses/curses.go +++ b/src/curses/curses.go @@ -4,11 +4,6 @@ package curses #include <ncurses.h> #include <locale.h> #cgo LDFLAGS: -lncurses -void swapOutput() { - FILE* temp = stdout; - stdout = stderr; - stderr = temp; -} */ import "C" @@ -142,6 +137,7 @@ var ( _colorMap map[int]int _prevDownTime time.Time _clickY []int + _screen *C.SCREEN Default16 *ColorTheme Dark256 *ColorTheme Light256 *ColorTheme @@ -254,10 +250,9 @@ func Init(theme *ColorTheme, black bool, mouse bool) { // syscall.Dup2(int(in.Fd()), int(os.Stdin.Fd())) } - C.swapOutput() - C.setlocale(C.LC_ALL, C.CString("")) - C.initscr() + _screen = C.newterm(nil, C.stderr, C.stdin) + C.set_term(_screen) if mouse { C.mousemask(C.ALL_MOUSE_EVENTS, nil) } @@ -316,7 +311,7 @@ func initPairs(theme *ColorTheme, black bool) { func Close() { C.endwin() - C.swapOutput() + C.delscreen(_screen) } func GetBytes() []byte { |