diff options
Diffstat (limited to 'vendor/golang.org/x/sys/windows/env_windows.go')
-rw-r--r-- | vendor/golang.org/x/sys/windows/env_windows.go | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go index f482a9f..92ac05f 100644 --- a/vendor/golang.org/x/sys/windows/env_windows.go +++ b/vendor/golang.org/x/sys/windows/env_windows.go | |||
@@ -8,7 +8,6 @@ package windows | |||
8 | 8 | ||
9 | import ( | 9 | import ( |
10 | "syscall" | 10 | "syscall" |
11 | "unicode/utf16" | ||
12 | "unsafe" | 11 | "unsafe" |
13 | ) | 12 | ) |
14 | 13 | ||
@@ -40,17 +39,11 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { | |||
40 | defer DestroyEnvironmentBlock(block) | 39 | defer DestroyEnvironmentBlock(block) |
41 | blockp := uintptr(unsafe.Pointer(block)) | 40 | blockp := uintptr(unsafe.Pointer(block)) |
42 | for { | 41 | for { |
43 | entry := (*[(1 << 30) - 1]uint16)(unsafe.Pointer(blockp))[:] | 42 | entry := UTF16PtrToString((*uint16)(unsafe.Pointer(blockp))) |
44 | for i, v := range entry { | ||
45 | if v == 0 { | ||
46 | entry = entry[:i] | ||
47 | break | ||
48 | } | ||
49 | } | ||
50 | if len(entry) == 0 { | 43 | if len(entry) == 0 { |
51 | break | 44 | break |
52 | } | 45 | } |
53 | env = append(env, string(utf16.Decode(entry))) | 46 | env = append(env, entry) |
54 | blockp += 2 * (uintptr(len(entry)) + 1) | 47 | blockp += 2 * (uintptr(len(entry)) + 1) |
55 | } | 48 | } |
56 | return env, nil | 49 | return env, nil |