Change-Id: Id15ebd9e97a8626e64665f6830a662e62432a619
Reviewed-on: https://go-review.googlesource.com/c/go/+/582500
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
// If there is an error, it will be of type *LinkError.
func Symlink(oldname, newname string) error {
// '/' does not work in link's content
- oldname = fromSlash(oldname)
+ oldname = filepathlite.FromSlash(oldname)
// need the exact location of the oldname when it's relative to determine if it's a directory
destpath := oldname
return name
}
-func fromSlash(path string) string {
- // Replace each '/' with '\\' if present
- var pathbuf []byte
- var lastSlash int
- for i, b := range path {
- if b == '/' {
- if pathbuf == nil {
- pathbuf = make([]byte, len(path))
- }
- copy(pathbuf[lastSlash:], path[lastSlash:i])
- pathbuf[i] = '\\'
- lastSlash = i + 1
- }
- }
- if pathbuf == nil {
- return path
- }
-
- copy(pathbuf[lastSlash:], path[lastSlash:])
- return string(pathbuf)
-}
-
func dirname(path string) string {
vol := filepathlite.VolumeName(path)
i := len(path) - 1