From: Yasuhiro Matsumoto Date: Wed, 25 Jan 2017 07:48:17 +0000 (+0900) Subject: path/filepath: ignore dot for Dir(`\\server\share`) X-Git-Tag: go1.9beta1~1735 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=34b455da4484dee20e8c355b50d24680224b58f2;p=gostls13.git path/filepath: ignore dot for Dir(`\\server\share`) Dir(`\\server\share`) returns `\\server\share.`. Change Dir so it returns `\\server\share` instead. Fixes #18783 Change-Id: I9e0dd71ea6aea85e6c6114aaa4bb3bea3270d818 Reviewed-on: https://go-review.googlesource.com/35690 Reviewed-by: Alex Brainman Run-TryBot: Alex Brainman TryBot-Result: Gobot Gobot --- diff --git a/src/path/filepath/path.go b/src/path/filepath/path.go index 1d8e35c969..e35ed5fefd 100644 --- a/src/path/filepath/path.go +++ b/src/path/filepath/path.go @@ -461,6 +461,10 @@ func Dir(path string) string { i-- } dir := Clean(path[len(vol) : i+1]) + if dir == "." && len(vol) > 2 { + // must be UNC + return vol + } return vol + dir } diff --git a/src/path/filepath/path_test.go b/src/path/filepath/path_test.go index 921b23842b..70baa6112f 100644 --- a/src/path/filepath/path_test.go +++ b/src/path/filepath/path_test.go @@ -665,6 +665,7 @@ var windirtests = []PathTest{ {`c:\a\b`, `c:\a`}, {`c:a\b`, `c:a`}, {`c:a\b\c`, `c:a\b`}, + {`\\host\share`, `\\host\share`}, {`\\host\share\`, `\\host\share\`}, {`\\host\share\a`, `\\host\share\`}, {`\\host\share\a\b`, `\\host\share\a`},