func mergeEnvWin(current, newValues map[string]string) map[string]string {
	uppers := make(map[string]string, len(current))
	news := map[string]string{}
	for k, v := range current {
		uppers[strings.ToUpper(k)] = v
	}

	for k, v := range newValues {
		up := strings.ToUpper(k)
		if _, ok := uppers[up]; ok {
			uppers[up] = v
		} else {
			news[k] = v
		}
	}

	for k := range current {
		current[k] = uppers[strings.ToUpper(k)]
	}
	for k, v := range news {
		current[k] = v
	}
	return current
}
// mergeEnvWin merges the two environment variable lists in a case insensitive,
// but case preserving way.  Thus, if FOO=bar is set, and newValues has foo=baz,
// then the resultant map will contain FOO=baz.
mergeEnvWin merges the two environment variable lists in a case insensitive,
but case preserving way.  Thus, if FOO=bar is set, and newValues has foo=baz,
then the resultant map will contain FOO=baz.
// mergeEnvWin merges the two environment variable lists in a case insensitive // but case preserving way . Thus if FOO = bar is set and newValues has foo = baz // then the resultant map will contain FOO = baz .
func mergeEnvWin(current, newValues map[string]string) map[string]string {
	uppers := make(map[string]string, len(current))
	news := map[string]string{}
	for k, v := range current {
		uppers[strings.ToUpper(k)] = v
	}
	for k, v := range newValues {
		up := strings.ToUpper(k)
		if _, ok := uppers[up]; ok {
			uppers[up] = v
		} else {
			news[k] = v
		}
	}
	for k := range current {
		current[k] = uppers[strings.ToUpper(k)]
	}
	for k, v := range news {
		current[k] = v
	}
	return current
}
func mergeEnvWin ( current , newValues map [ string ] string ) map [ string ] string { uppers := make ( map [ string ] string , len ( current ) ) news := map [ string ] string { } for k , v := range current { uppers [ strings . ToUpper ( k ) ] = v } for k , v := range newValues { up := strings . ToUpper ( k ) if _ , ok := uppers [ up ] ; ok { uppers [ up ] = v } else { news [ k ] = v } } for k := range current { current [ k ] = uppers [ strings . ToUpper ( k ) ] } for k , v := range news { current [ k ] = v } return current }
mergeEnvWin merges the two environment variable lists in a case insensitive,
but case preserving way.
mergeEnvWin merges the two environment variable lists in a case insensitive but case preserving way .