Mercurial > yakumo_izuru > aya
comparison vendor/golang.org/x/sys/windows/env_windows.go @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 // Copyright 2010 The Go Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style | |
3 // license that can be found in the LICENSE file. | |
4 | |
5 // Windows environment variables. | |
6 | |
7 package windows | |
8 | |
9 import ( | |
10 "syscall" | |
11 "unsafe" | |
12 ) | |
13 | |
14 func Getenv(key string) (value string, found bool) { | |
15 return syscall.Getenv(key) | |
16 } | |
17 | |
18 func Setenv(key, value string) error { | |
19 return syscall.Setenv(key, value) | |
20 } | |
21 | |
22 func Clearenv() { | |
23 syscall.Clearenv() | |
24 } | |
25 | |
26 func Environ() []string { | |
27 return syscall.Environ() | |
28 } | |
29 | |
30 // Returns a default environment associated with the token, rather than the current | |
31 // process. If inheritExisting is true, then this environment also inherits the | |
32 // environment of the current process. | |
33 func (token Token) Environ(inheritExisting bool) (env []string, err error) { | |
34 var block *uint16 | |
35 err = CreateEnvironmentBlock(&block, token, inheritExisting) | |
36 if err != nil { | |
37 return nil, err | |
38 } | |
39 defer DestroyEnvironmentBlock(block) | |
40 blockp := uintptr(unsafe.Pointer(block)) | |
41 for { | |
42 entry := UTF16PtrToString((*uint16)(unsafe.Pointer(blockp))) | |
43 if len(entry) == 0 { | |
44 break | |
45 } | |
46 env = append(env, entry) | |
47 blockp += 2 * (uintptr(len(entry)) + 1) | |
48 } | |
49 return env, nil | |
50 } | |
51 | |
52 func Unsetenv(key string) error { | |
53 return syscall.Unsetenv(key) | |
54 } |