]> Cypherpunks repositories - gostls13.git/commitdiff
os: use filepathlite.Base
authoraimuz <mr.imuz@gmail.com>
Mon, 6 May 2024 03:57:08 +0000 (03:57 +0000)
committerGopher Robot <gobot@golang.org>
Tue, 7 May 2024 18:44:48 +0000 (18:44 +0000)
Replace custom basename implementations with filepathlite.Base across
all relevant os/stat files to unify path processing across platforms.

Change-Id: I7c4795661926949bae71e66d8b4f9363e7caef15
GitHub-Last-Rev: 1236e93ebcd4137f9cbbbab2163cadf4e4d02674
GitHub-Pull-Request: golang/go#67195
Reviewed-on: https://go-review.googlesource.com/c/go/+/583415
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
14 files changed:
src/os/path_unix.go
src/os/path_windows.go
src/os/stat_aix.go
src/os/stat_darwin.go
src/os/stat_dragonfly.go
src/os/stat_freebsd.go
src/os/stat_js.go
src/os/stat_linux.go
src/os/stat_netbsd.go
src/os/stat_openbsd.go
src/os/stat_solaris.go
src/os/stat_wasip1.go
src/os/stat_windows.go
src/os/types_windows.go

index 062c07c91ee69a2d954bd24fdeffc238cc82ccea..0189bcd2a1ee66231c808c56c5b13eb55ed52763 100644 (file)
@@ -16,24 +16,6 @@ func IsPathSeparator(c uint8) bool {
        return PathSeparator == c
 }
 
-// basename removes trailing slashes and the leading directory name from path name.
-func basename(name string) string {
-       i := len(name) - 1
-       // Remove trailing slashes
-       for ; i > 0 && name[i] == '/'; i-- {
-               name = name[:i]
-       }
-       // Remove leading directory name
-       for i--; i >= 0; i-- {
-               if name[i] == '/' {
-                       name = name[i+1:]
-                       break
-               }
-       }
-
-       return name
-}
-
 // splitPath returns the base name and parent directory.
 func splitPath(path string) (string, string) {
        // if no better parent is found, the path is relative from "here"
index 4d7bdb2fa2b2463afa2bb596317a17424d696216..f585aa5ee6ded43794cab5e7590f1f9eb5a3fd0f 100644 (file)
@@ -21,30 +21,6 @@ func IsPathSeparator(c uint8) bool {
        return c == '\\' || c == '/'
 }
 
-// basename removes trailing slashes and the leading
-// directory name and drive letter from path name.
-func basename(name string) string {
-       // Remove drive letter
-       if len(name) == 2 && name[1] == ':' {
-               name = "."
-       } else if len(name) > 2 && name[1] == ':' {
-               name = name[2:]
-       }
-       i := len(name) - 1
-       // Remove trailing slashes
-       for ; i > 0 && (name[i] == '/' || name[i] == '\\'); i-- {
-               name = name[:i]
-       }
-       // Remove leading directory name
-       for i--; i >= 0; i-- {
-               if name[i] == '/' || name[i] == '\\' {
-                       name = name[i+1:]
-                       break
-               }
-       }
-       return name
-}
-
 func dirname(path string) string {
        vol := filepathlite.VolumeName(path)
        i := len(path) - 1
index a37c9fdae41aee2933450f47519d4c01f22fca2c..574e3d26ffd0c1de56287f69130f284e51f75e48 100644 (file)
@@ -5,12 +5,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = int64(fs.sys.Size)
        fs.modTime = stTimespecToTime(fs.sys.Mtim)
        fs.mode = FileMode(fs.sys.Mode & 0777)
index b92ffd4a0a6ff4a0b51e048832da7a7d998579f4..70c5345aacde1c2f132baef16ec6d43efe3b76a9 100644 (file)
@@ -5,12 +5,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
        fs.mode = FileMode(fs.sys.Mode & 0777)
index 316c26c7cab7af1e10ed3be1ace47d51d01c2b9e..01f2a14e276849d963bbe69ca40d8ce5e16f4fb1 100644 (file)
@@ -5,12 +5,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtim.Unix())
        fs.mode = FileMode(fs.sys.Mode & 0777)
index 919ee44dd6b503b2c39690251b7a5e597ebc354c..7b786940454b59b24fccf8f428337b1aeded1484 100644 (file)
@@ -5,12 +5,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
        fs.mode = FileMode(fs.sys.Mode & 0777)
index a137172e66de6f019089ba974371bdc67ab523ac..d63461d6955f21f1d5bc1d152a566f48afa533d6 100644 (file)
@@ -7,12 +7,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtime, fs.sys.MtimeNsec)
        fs.mode = FileMode(fs.sys.Mode & 0777)
index 316c26c7cab7af1e10ed3be1ace47d51d01c2b9e..01f2a14e276849d963bbe69ca40d8ce5e16f4fb1 100644 (file)
@@ -5,12 +5,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtim.Unix())
        fs.mode = FileMode(fs.sys.Mode & 0777)
index 919ee44dd6b503b2c39690251b7a5e597ebc354c..7b786940454b59b24fccf8f428337b1aeded1484 100644 (file)
@@ -5,12 +5,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
        fs.mode = FileMode(fs.sys.Mode & 0777)
index 316c26c7cab7af1e10ed3be1ace47d51d01c2b9e..01f2a14e276849d963bbe69ca40d8ce5e16f4fb1 100644 (file)
@@ -5,12 +5,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtim.Unix())
        fs.mode = FileMode(fs.sys.Mode & 0777)
index 4e00ecb075f3a5ac157ae7503d3cc707a1b4147d..447044e2e2677046d2a4989043391fe216f3da1f 100644 (file)
@@ -5,6 +5,7 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
@@ -18,7 +19,7 @@ const (
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = fs.sys.Size
        fs.modTime = time.Unix(fs.sys.Mtim.Unix())
        fs.mode = FileMode(fs.sys.Mode & 0777)
index a4f0a20430b5ff5d7f8ca5c6b94e308bb5a5a722..85a3649889926967a65bb615f09ce70c0fb027dc 100644 (file)
@@ -7,12 +7,13 @@
 package os
 
 import (
+       "internal/filepathlite"
        "syscall"
        "time"
 )
 
 func fillFileStatFromSys(fs *fileStat, name string) {
-       fs.name = basename(name)
+       fs.name = filepathlite.Base(name)
        fs.size = int64(fs.sys.Size)
        fs.mode = FileMode(fs.sys.Mode)
        fs.modTime = time.Unix(0, int64(fs.sys.Mtime))
index fd948ab0e37f5230a2309db1f2821e495fbd6f99..160a3893ce56f139cc955133a3a391a7e23c569c 100644 (file)
@@ -5,6 +5,7 @@
 package os
 
 import (
+       "internal/filepathlite"
        "internal/syscall/windows"
        "syscall"
        "unsafe"
@@ -107,7 +108,7 @@ func statHandle(name string, h syscall.Handle) (FileInfo, error) {
        }
        switch ft {
        case syscall.FILE_TYPE_PIPE, syscall.FILE_TYPE_CHAR:
-               return &fileStat{name: basename(name), filetype: ft}, nil
+               return &fileStat{name: filepathlite.Base(name), filetype: ft}, nil
        }
        fs, err := newFileStatFromGetFileInformationByHandle(name, h)
        if err != nil {
index c83fa4c353916d7becb13cd837c1d2f94a49ee4e..34648e796a878f23a6fa1c4b2b2b06824a9165ec 100644 (file)
@@ -61,7 +61,7 @@ func newFileStatFromGetFileInformationByHandle(path string, h syscall.Handle) (f
        }
 
        return &fileStat{
-               name:           basename(path),
+               name:           filepathlite.Base(path),
                FileAttributes: d.FileAttributes,
                CreationTime:   d.CreationTime,
                LastAccessTime: d.LastAccessTime,
@@ -346,7 +346,7 @@ func (fs *fileStat) saveInfoFromPath(path string) error {
                        return &PathError{Op: "FullPath", Path: path, Err: err}
                }
        }
-       fs.name = basename(path)
+       fs.name = filepathlite.Base(path)
        return nil
 }