mirror of
https://github.com/golang/go
synced 2024-11-18 13:54:59 -07:00
path: use bytealg.LastIndexByteString
While strings.LastIndex{,Byte} cannot be used in package path, the respective internal/bytealg function can be used. Change-Id: If0ecc36484308221f50875c8609913f6f2887fba Reviewed-on: https://go-review.googlesource.com/c/go/+/527855 Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Heschi Kreinick <heschi@google.com>
This commit is contained in:
parent
3e1db32657
commit
2c74018d7b
@ -11,6 +11,8 @@
|
||||
// operating system paths, use the [path/filepath] package.
|
||||
package path
|
||||
|
||||
import "internal/bytealg"
|
||||
|
||||
// A lazybuf is a lazily constructed path buffer.
|
||||
// It supports append, reading previously appended bytes,
|
||||
// and retrieving the final string. It does not allocate a buffer
|
||||
@ -135,22 +137,13 @@ func Clean(path string) string {
|
||||
return out.string()
|
||||
}
|
||||
|
||||
// lastSlash(s) is strings.LastIndex(s, "/") but we can't import strings.
|
||||
func lastSlash(s string) int {
|
||||
i := len(s) - 1
|
||||
for i >= 0 && s[i] != '/' {
|
||||
i--
|
||||
}
|
||||
return i
|
||||
}
|
||||
|
||||
// Split splits path immediately following the final slash,
|
||||
// separating it into a directory and file name component.
|
||||
// If there is no slash in path, Split returns an empty dir and
|
||||
// file set to path.
|
||||
// The returned values have the property that path = dir+file.
|
||||
func Split(path string) (dir, file string) {
|
||||
i := lastSlash(path)
|
||||
i := bytealg.LastIndexByteString(path, '/')
|
||||
return path[:i+1], path[i+1:]
|
||||
}
|
||||
|
||||
@ -205,7 +198,7 @@ func Base(path string) string {
|
||||
path = path[0 : len(path)-1]
|
||||
}
|
||||
// Find the last element
|
||||
if i := lastSlash(path); i >= 0 {
|
||||
if i := bytealg.LastIndexByteString(path, '/'); i >= 0 {
|
||||
path = path[i+1:]
|
||||
}
|
||||
// If empty now, it had only slashes.
|
||||
|
Loading…
Reference in New Issue
Block a user