Commit ff15e5c0 authored by Lucio De Re's avatar Lucio De Re Committed by David du Colombier

cmd/go: Plan 9 compatible "env" output

Fixes the output of go env so that variables can be set
more accurately when using Plan 9's rc shell. Specifically,
GOPATH may have multiple components and the current
representation is plain wrong. In practice, we probably
ought to change os. Getenv to produce the right result, but
that requires considerably more thought.

LGTM=rsc
R=golang-codereviews, gobot, rsc
CC=golang-codereviews
https://golang.org/cl/66600043
parent c687be42
......@@ -91,7 +91,19 @@ func runEnv(cmd *Command, args []string) {
default:
fmt.Printf("%s=\"%s\"\n", e.name, e.value)
case "plan9":
fmt.Printf("%s='%s'\n", e.name, strings.Replace(e.value, "'", "''", -1))
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)
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment