| 12345678910111213141516171819202122232425262728293031323334 |
- //go:build windows && !appengine
- // +build windows,!appengine
- package runewidth
- import (
- "os"
- "syscall"
- )
- var (
- kernel32 = syscall.NewLazyDLL("kernel32")
- procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP")
- )
- // IsEastAsian return true if the current locale is CJK
- func IsEastAsian() bool {
- if os.Getenv("WT_SESSION") != "" {
- // Windows Terminal always not use East Asian Ambiguous Width(s).
- return false
- }
- r1, _, _ := procGetConsoleOutputCP.Call()
- if r1 == 0 {
- return false
- }
- switch int(r1) {
- case 932, 51932, 936, 949, 950:
- return true
- }
- return false
- }
|