Skip to content
Snippets Groups Projects
runewidth_windows.go 479 B
Newer Older
  • Learn to ignore specific revisions
  • Volker Schukai's avatar
    Volker Schukai committed
    //go:build windows && !appengine
    // +build windows,!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
    }