diff options
author | Tianon Gravi <admwiggin@gmail.com> | 2015-01-15 11:54:00 -0700 |
---|---|---|
committer | Tianon Gravi <admwiggin@gmail.com> | 2015-01-15 11:54:00 -0700 |
commit | f154da9e12608589e8d5f0508f908a0c3e88a1bb (patch) | |
tree | f8255d51e10c6f1e0ed69702200b966c9556a431 /src/pkg/syscall/env_windows.go | |
parent | 8d8329ed5dfb9622c82a9fbec6fd99a580f9c9f6 (diff) | |
download | golang-upstream/1.4.tar.gz |
Imported Upstream version 1.4upstream/1.4
Diffstat (limited to 'src/pkg/syscall/env_windows.go')
-rw-r--r-- | src/pkg/syscall/env_windows.go | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/pkg/syscall/env_windows.go b/src/pkg/syscall/env_windows.go deleted file mode 100644 index 420b38724..000000000 --- a/src/pkg/syscall/env_windows.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Windows environment variables. - -package syscall - -import ( - "unicode/utf16" - "unsafe" -) - -func Getenv(key string) (value string, found bool) { - keyp, err := UTF16PtrFromString(key) - if err != nil { - return "", false - } - b := make([]uint16, 100) - n, e := GetEnvironmentVariable(keyp, &b[0], uint32(len(b))) - if n == 0 && e == ERROR_ENVVAR_NOT_FOUND { - return "", false - } - if n > uint32(len(b)) { - b = make([]uint16, n) - n, e = GetEnvironmentVariable(keyp, &b[0], uint32(len(b))) - if n > uint32(len(b)) { - n = 0 - } - } - return string(utf16.Decode(b[0:n])), true -} - -func Setenv(key, value string) error { - v, err := UTF16PtrFromString(value) - if err != nil { - return err - } - keyp, err := UTF16PtrFromString(key) - if err != nil { - return err - } - e := SetEnvironmentVariable(keyp, v) - if e != nil { - return e - } - return nil -} - -func Clearenv() { - for _, s := range Environ() { - // Environment variables can begin with = - // so start looking for the separator = at j=1. - // http://blogs.msdn.com/b/oldnewthing/archive/2010/05/06/10008132.aspx - for j := 1; j < len(s); j++ { - if s[j] == '=' { - Setenv(s[0:j], "") - break - } - } - } -} - -func Environ() []string { - s, e := GetEnvironmentStrings() - if e != nil { - return nil - } - defer FreeEnvironmentStrings(s) - r := make([]string, 0, 50) // Empty with room to grow. - for from, i, p := 0, 0, (*[1 << 24]uint16)(unsafe.Pointer(s)); true; i++ { - if p[i] == 0 { - // empty string marks the end - if i <= from { - break - } - r = append(r, string(utf16.Decode(p[from:i]))) - from = i + 1 - } - } - return r -} |