2024-11-06 17:37:08 +00:00
|
|
|
//go:build windows && !appengine
|
|
|
|
// +build windows,!appengine
|
2019-11-04 10:08:22 +00:00
|
|
|
|
2019-10-04 15:21:24 +00:00
|
|
|
package runewidth
|
|
|
|
|
|
|
|
import (
|
|
|
|
"syscall"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
kernel32 = syscall.NewLazyDLL("kernel32")
|
|
|
|
procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP")
|
|
|
|
)
|
|
|
|
|
|
|
|
// IsEastAsian return true if the current locale is CJK
|
|
|
|
func IsEastAsian() bool {
|
|
|
|
r1, _, _ := procGetConsoleOutputCP.Call()
|
|
|
|
if r1 == 0 {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
switch int(r1) {
|
|
|
|
case 932, 51932, 936, 949, 950:
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
|
|
|
return false
|
|
|
|
}
|