Codebase list golang-github-mattn-go-runewidth / ddea9d65-557c-40da-aae2-791c19be175d/v0.0.4 runewidth_windows.go
ddea9d65-557c-40da-aae2-791c19be175d/v0.0.4

Tree @ddea9d65-557c-40da-aae2-791c19be175d/v0.0.4 (Download .tar.gz)

runewidth_windows.go @ddea9d65-557c-40da-aae2-791c19be175d/v0.0.4raw · history · blame

// +build windows
// +build !appengine

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
}