diff options
| author | Mohit Agarwal <mohit@sdf.org> | 2015-11-16 23:16:00 +0530 |
|---|---|---|
| committer | Alex Brainman <alex.brainman@gmail.com> | 2015-11-17 23:46:38 +0000 |
| commit | e0e4ccb51afd84c33a9da47f72d464a9b92ecf4a (patch) | |
| tree | 18aab47aa4d33c57e6dfb5d24e2db09d00b638ae /src/path | |
| parent | 888aadfa6088cc1654bb4f0c6bb61675ce360dfb (diff) | |
| download | go-e0e4ccb51afd84c33a9da47f72d464a9b92ecf4a.tar.xz | |
path/filepath: include the original paths in error messages
On Windows, Rel emits error messages of the form `Rel: can't make
\windows relative to \windows`. Rather than emitting paths after
stripping volume names, emit the original paths so as to make those of
the form `Rel: can't make d:\windows relative to c:\windows`. Fixed a
test that expected the error message to emit clean path instead of the
original.
Fixes #13259
Change-Id: I3a9bd5b137205f22794ec8046b4e917ee48cf750
Reviewed-on: https://go-review.googlesource.com/16858
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Diffstat (limited to 'src/path')
| -rw-r--r-- | src/path/filepath/example_unix_test.go | 2 | ||||
| -rw-r--r-- | src/path/filepath/path.go | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/path/filepath/example_unix_test.go b/src/path/filepath/example_unix_test.go index 27d85d15c6..893be1b198 100644 --- a/src/path/filepath/example_unix_test.go +++ b/src/path/filepath/example_unix_test.go @@ -35,7 +35,7 @@ func ExampleRel() { // On Unix: // "/a/b/c": "b/c" <nil> // "/b/c": "../b/c" <nil> - // "./b/c": "" Rel: can't make b/c relative to /a + // "./b/c": "" Rel: can't make ./b/c relative to /a } func ExampleSplit() { diff --git a/src/path/filepath/path.go b/src/path/filepath/path.go index 681fdfa09f..7164c070bb 100644 --- a/src/path/filepath/path.go +++ b/src/path/filepath/path.go @@ -270,7 +270,7 @@ func Rel(basepath, targpath string) (string, error) { baseSlashed := len(base) > 0 && base[0] == Separator targSlashed := len(targ) > 0 && targ[0] == Separator if baseSlashed != targSlashed || !sameWord(baseVol, targVol) { - return "", errors.New("Rel: can't make " + targ + " relative to " + base) + return "", errors.New("Rel: can't make " + targpath + " relative to " + basepath) } // Position base[b0:bi] and targ[t0:ti] at the first differing elements. bl := len(base) @@ -296,7 +296,7 @@ func Rel(basepath, targpath string) (string, error) { t0 = ti } if base[b0:bi] == ".." { - return "", errors.New("Rel: can't make " + targ + " relative to " + base) + return "", errors.New("Rel: can't make " + targpath + " relative to " + basepath) } if b0 != bl { // Base elements left. Must go up before going down. |
