23 lines
434 B
Go
23 lines
434 B
Go
//go:build !test
|
|
|
|
package main
|
|
|
|
import (
|
|
"syscall"
|
|
"unsafe"
|
|
)
|
|
|
|
func termSize() (int, int) {
|
|
type winsize struct {
|
|
Rows uint16
|
|
Cols uint16
|
|
Xpixels uint16
|
|
Ypixels uint16
|
|
}
|
|
var ws winsize
|
|
_, _, errno := syscall.Syscall(syscall.SYS_IOCTL, uintptr(syscall.Stdout), syscall.TIOCGWINSZ, uintptr(unsafe.Pointer(&ws)))
|
|
if errno != 0 || ws.Cols == 0 || ws.Rows == 0 {
|
|
return 80, 24
|
|
}
|
|
return int(ws.Cols), int(ws.Rows)
|
|
} |