Codebase list golang-github-mattn-go-runewidth / ac894cbf-3076-4265-a0be-657bde729239/v0.0.13 runewidth_windows.go
ac894cbf-3076-4265-a0be-657bde729239/v0.0.13

Tree @ac894cbf-3076-4265-a0be-657bde729239/v0.0.13 (Download .tar.gz)

runewidth_windows.go @ac894cbf-3076-4265-a0be-657bde729239/v0.0.13raw · 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
}