这是indexloc提供的服务,不要输入任何密码
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 24 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,27 @@
language: go
sudo: false

matrix:
include:
- go: 1.4
os: linux
- go: tip
os: linux
env: CROSS_COMPILE=true
- go: tip
os: osx

before_install:
- if [ "$CROSS_COMPILE" = "true" ]; then sudo apt update; fi

install:
- go get ./...
go:
- 1.4
- tip
- if [ "$CROSS_COMPILE" = "true" ]; then sudo apt install libc6-dev-i386; fi
- if [ "$CROSS_COMPILE" = "true" ]; then sudo apt install gcc-mingw-w64; fi
- go get github.com/nsf/termbox-go
- if [ "$TRAVIS_OS_NAME" = "linux" -a "$CROSS_COMPILE" = "true" ]; then go get github.com/mattn/go-isatty ; fi
- go get -t -v ./...

script:
- go build
- go test
- if [ "$TRAVIS_OS_NAME" = "linux" -a "$CROSS_COMPILE" = "true" ]; then env GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-gcc go build -v; fi
35 changes: 6 additions & 29 deletions terminal_size.go
Original file line number Diff line number Diff line change
@@ -1,37 +1,14 @@
package uilive

import (
"os"
"runtime"
"syscall"
"unsafe"
"github.com/nsf/termbox-go"
)

type windowSize struct {
rows uint16
cols uint16
xPixels uint16
yPixels uint16
}

var out *os.File
var err error
var sz windowSize

func getTermSize() (int, int) {
if runtime.GOOS == "openbsd" {
out, err = os.OpenFile("/dev/tty", os.O_RDWR, 0)
if err != nil {
os.Exit(1)
}

} else {
out, err = os.OpenFile("/dev/tty", os.O_WRONLY, 0)
if err != nil {
os.Exit(1)
}
if err := termbox.Init(); err != nil {
panic(err)
}
_, _, _ = syscall.Syscall(syscall.SYS_IOCTL,
out.Fd(), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&sz)))
return int(sz.cols), int(sz.rows)
w, h := termbox.Size()
termbox.Close()
return w, h
}
2 changes: 2 additions & 0 deletions writer_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ package uilive

import (
"fmt"
"strings"
"syscall"
"unsafe"
"github.com/mattn/go-isatty"
)

var kernel32 = syscall.NewLazyDLL("kernel32.dll")
Expand Down