github.com/motemen/ghq@v1.0.3/helpers_windows.go (about)

     1  // +build windows
     2  
     3  package main
     4  
     5  import "syscall"
     6  
     7  func toFullPath(s string) (string, error) {
     8  	p := syscall.StringToUTF16(s)
     9  	b := p
    10  	n, err := syscall.GetLongPathName(&p[0], &b[0], uint32(len(b)))
    11  	if err != nil {
    12  		return s, err
    13  	}
    14  	if n > uint32(len(b)) {
    15  		b = make([]uint16, n)
    16  		n, err = syscall.GetLongPathName(&p[0], &b[0], uint32(len(b)))
    17  		if err != nil {
    18  			return s, err
    19  		}
    20  	}
    21  	b = b[:n]
    22  	return syscall.UTF16ToString(b), nil
    23  }