podman

Форк
0
/
terminal_windows.go 
40 строк · 807.0 Байт
1
//go:build windows
2
// +build windows
3

4
package goterm
5

6
import (
7
	"errors"
8
	"math"
9
	"os"
10

11
	"golang.org/x/sys/windows"
12
)
13

14
func getWinsize() (*winsize, error) {
15
	ws := new(winsize)
16
	fd := os.Stdout.Fd()
17
	var info windows.ConsoleScreenBufferInfo
18
	if err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil {
19
		return nil, err
20
	}
21

22
	ws.Col = uint16(info.Window.Right - info.Window.Left + 1)
23
	ws.Row = uint16(info.Window.Bottom - info.Window.Top + 1)
24

25
	return ws, nil
26
}
27

28
// Height gets console height
29
func Height() int {
30
	ws, err := getWinsize()
31
	if err != nil {
32
		// returns math.MinInt32 if we could not retrieve the height of console window,
33
		// like VSCode debugging console
34
		if errors.Is(err, windows.WSAEOPNOTSUPP) {
35
			return math.MinInt32
36
		}
37
		return -1
38
	}
39
	return int(ws.Row)
40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.