go-tg-screenshot-bot

Форк
0
57 строк · 1.3 Кб
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
	size := unsafe.Sizeof(*block)
41
	for *block != 0 {
42
		// find NUL terminator
43
		end := unsafe.Pointer(block)
44
		for *(*uint16)(end) != 0 {
45
			end = unsafe.Add(end, size)
46
		}
47

48
		entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size)
49
		env = append(env, UTF16ToString(entry))
50
		block = (*uint16)(unsafe.Add(end, size))
51
	}
52
	return env, nil
53
}
54

55
func Unsetenv(key string) error {
56
	return syscall.Unsetenv(key)
57
}
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.