From 392d5feb8b359dce5120e4b9ee3743433c1cca6b Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Thu, 14 Mar 2013 23:59:49 -0400 Subject: [PATCH] go/build: allow ~ in middle of path, just not at beginning CL 7799045 relaxed the restriction in cmd/go on ~ in GOPATH to allow paths with ~ in the middle while continuing to protect against the common mistake of using GOPATH='~/home' instead of GOPATH=~/home. Unfortunately go/build still filters these paths out: $ GOPATH=/tmp/test~ing go build test.go:22:2: cannot find package "test" in any of: /usr/lib/go/test (from $GOROOT) ($GOPATH not set) So relax the requirement in go/build, too. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7826043 --- src/pkg/go/build/build.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pkg/go/build/build.go b/src/pkg/go/build/build.go index d0e420f433..d5f181d7c1 100644 --- a/src/pkg/go/build/build.go +++ b/src/pkg/go/build/build.go @@ -212,8 +212,8 @@ func (ctxt *Context) gopath() []string { // Do not get confused by this common mistake. continue } - if strings.Contains(p, "~") && runtime.GOOS != "windows" { - // Path segments containing ~ on Unix are almost always + if strings.HasPrefix(p, "~") { + // Path segments starting with ~ on Unix are almost always // users who have incorrectly quoted ~ while setting GOPATH, // preventing it from expanding to $HOME. // The situation is made more confusing by the fact that