mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
871 B
27 lines
871 B
// 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 |
|
}
|
|
|