github.com/ajguerrer/rules_go@v0.20.3/go/tools/builders/path_windows.go (about)

     1  // +build windows
     2  
     3  package main
     4  
     5  import (
     6  	"runtime"
     7  	"syscall"
     8  )
     9  
    10  func processPath(path string) (string, error) {
    11  	if runtime.GOOS != "windows" {
    12  		return path, nil
    13  	}
    14  
    15  	var buf [258]uint16
    16  	up, err := syscall.UTF16PtrFromString(path)
    17  	if err != nil {
    18  		return path, err
    19  	}
    20  	_, err = syscall.GetShortPathName(up, &buf[0], 258)
    21  	if err != nil {
    22  		return path, err
    23  	}
    24  	return syscall.UTF16ToString(buf[:]), nil
    25  }