1 // Copyright 2012 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.
5 //go:build aix || darwin || dragonfly || freebsd || hurd || (js && wasm) || linux || netbsd || openbsd || solaris || windows || plan9
9 func gogetenv(key
string) string {
12 throw("getenv before env init")
14 for _
, s
:= range env
{
15 if len(s
) > len(key
) && s
[len(key
)] == '=' && envKeyEqual(s
[:len(key
)], key
) {
22 // envKeyEqual reports whether a == b, with ASCII-only case insensitivity
23 // on Windows. The two strings must have the same length.
24 func envKeyEqual(a
, b
string) bool {
25 if GOOS
== "windows" { // case insensitive
26 for i
:= 0; i
< len(a
); i
++ {
28 if ca
== cb ||
lowerASCII(ca
) == lowerASCII(cb
) {
38 func lowerASCII(c
byte) byte {
39 if 'A' <= c
&& c
<= 'Z' {
40 return c
+ ('a' - 'A')