Skip to content

Commit

Permalink
path: use bytealg.LastIndexByteString
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Heschi Kreinick <[email protected]>
  • Loading branch information
tklauser authored and gopherbot committed Sep 13, 2023
1 parent 3e1db32 commit 2c74018
Showing 1 changed file with 4 additions and 11 deletions.
15 changes: 4 additions & 11 deletions src/path/path.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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:]
}

Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit 2c74018

Please sign in to comment.