30 lines
394 B
Go
30 lines
394 B
Go
|
package main
|
||
|
|
||
|
// +build linux
|
||
|
|
||
|
import (
|
||
|
"syscall"
|
||
|
"unsafe"
|
||
|
)
|
||
|
|
||
|
type winsize struct {
|
||
|
Row uint16
|
||
|
Col uint16
|
||
|
Xpixel uint16
|
||
|
Ypixel uint16
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
ws := &winsize{}
|
||
|
retCode, _, errno := syscall.Syscall(syscall.SYS_IOCTL,
|
||
|
uintptr(syscall.Stdin),
|
||
|
uintptr(syscall.TIOCGWINSZ),
|
||
|
uintptr(unsafe.Pointer(ws)))
|
||
|
|
||
|
if int(retCode) == -1 {
|
||
|
panic(errno)
|
||
|
}
|
||
|
|
||
|
Width = int(ws.Col)
|
||
|
}
|