summaryrefslogtreecommitdiff
path: root/src/cmd/go/env.go
diff options
context:
space:
mode:
authorMichael Stapelberg <stapelberg@debian.org>2014-06-19 09:22:53 +0200
committerMichael Stapelberg <stapelberg@debian.org>2014-06-19 09:22:53 +0200
commit8a39ee361feb9bf46d728ff1ba4f07ca1d9610b1 (patch)
tree4449f2036cccf162e8417cc5841a35815b3e7ac5 /src/cmd/go/env.go
parentc8bf49ef8a92e2337b69c14b9b88396efe498600 (diff)
downloadgolang-upstream/1.3.tar.gz
Imported Upstream version 1.3upstream/1.3
Diffstat (limited to 'src/cmd/go/env.go')
-rw-r--r--src/cmd/go/env.go34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/cmd/go/env.go b/src/cmd/go/env.go
index 2db821797..26d37df4f 100644
--- a/src/cmd/go/env.go
+++ b/src/cmd/go/env.go
@@ -85,18 +85,28 @@ func runEnv(cmd *Command, args []string) {
return
}
- switch runtime.GOOS {
- default:
- for _, e := range env {
- fmt.Printf("%s=\"%s\"\n", e.name, e.value)
- }
- case "plan9":
- for _, e := range env {
- fmt.Printf("%s='%s'\n", e.name, strings.Replace(e.value, "'", "''", -1))
- }
- case "windows":
- for _, e := range env {
- fmt.Printf("set %s=%s\n", e.name, e.value)
+ for _, e := range env {
+ if e.name != "TERM" {
+ switch runtime.GOOS {
+ default:
+ fmt.Printf("%s=\"%s\"\n", e.name, e.value)
+ case "plan9":
+ if strings.IndexByte(e.value, '\x00') < 0 {
+ fmt.Printf("%s='%s'\n", e.name, strings.Replace(e.value, "'", "''", -1))
+ } else {
+ v := strings.Split(e.value, "\x00")
+ fmt.Printf("%s=(", e.name)
+ for x, s := range v {
+ if x > 0 {
+ fmt.Printf(" ")
+ }
+ fmt.Printf("%s", s)
+ }
+ fmt.Printf(")\n")
+ }
+ case "windows":
+ fmt.Printf("set %s=%s\n", e.name, e.value)
+ }
}
}
}