mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			871 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			871 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package pq is a pure Go Postgres driver for the database/sql package.
 | 
						|
package pq
 | 
						|
 | 
						|
import (
 | 
						|
	"path/filepath"
 | 
						|
	"syscall"
 | 
						|
)
 | 
						|
 | 
						|
// Perform Windows user name lookup identically to libpq.
 | 
						|
//
 | 
						|
// The PostgreSQL code makes use of the legacy Win32 function
 | 
						|
// GetUserName, and that function has not been imported into stock Go.
 | 
						|
// GetUserNameEx is available though, the difference being that a
 | 
						|
// wider range of names are available.  To get the output to be the
 | 
						|
// same as GetUserName, only the base (or last) component of the
 | 
						|
// result is returned.
 | 
						|
func userCurrent() (string, error) {
 | 
						|
	pw_name := make([]uint16, 128)
 | 
						|
	pwname_size := uint32(len(pw_name)) - 1
 | 
						|
	err := syscall.GetUserNameEx(syscall.NameSamCompatible, &pw_name[0], &pwname_size)
 | 
						|
	if err != nil {
 | 
						|
		return "", ErrCouldNotDetectUsername
 | 
						|
	}
 | 
						|
	s := syscall.UTF16ToString(pw_name)
 | 
						|
	u := filepath.Base(s)
 | 
						|
	return u, nil
 | 
						|
}
 |