Use the TrimPrefix, TrimSuffix and CutPrefix to simplify the code.
Change-Id: I3e2b271ec0d3f9ce664b830e2b0c21ab47337ed0
GitHub-Last-Rev:
4bd1577d2496173800d609da75b08f6de177aba9
GitHub-Pull-Request: golang/go#68629
Reviewed-on: https://go-review.googlesource.com/c/go/+/601675
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
defer f.Close()
sym, _ := f.ImportedSymbols()
for _, s := range sym {
- if len(s) > 0 && s[0] == '_' {
- s = s[1:]
- }
+ s = strings.TrimPrefix(s, "_")
checkImportSymName(s)
fmt.Fprintf(stdout, "//go:cgo_import_dynamic %s %s %q\n", s, s, "")
}
if imp == nil {
// create a new fake package
// come up with a sensible package name (heuristic)
- name := path
- if i := len(name); i > 0 && name[i-1] == '/' {
- name = name[:i-1]
- }
+ name := strings.TrimSuffix(path, "/")
if i := strings.LastIndex(name, "/"); i >= 0 {
name = name[i+1:]
}
for _, pattern = range patterns {
pid++
- glob := pattern
- all := strings.HasPrefix(pattern, "all:")
- if all {
- glob = pattern[len("all:"):]
- }
+ glob, all := strings.CutPrefix(pattern, "all:")
// Check pattern is valid for //go:embed.
if _, err := pathpkg.Match(glob, ""); err != nil || !validEmbedPattern(glob) {
return nil, nil, fmt.Errorf("invalid pattern syntax")
// same situations.
// Strip the object directory entirely.
- objdir := a.Objdir
- if len(objdir) > 1 && objdir[len(objdir)-1] == filepath.Separator {
- objdir = objdir[:len(objdir)-1]
- }
+ objdir := strings.TrimSuffix(a.Objdir, string(filepath.Separator))
rewrite := ""
rewriteDir := a.Package.Dir
package slog
import (
+ "bytes"
"context"
"log"
loginternal "log/internal"
// Remove final newline.
origLen := len(buf) // Report that the entire buf was written.
- if len(buf) > 0 && buf[len(buf)-1] == '\n' {
- buf = buf[:len(buf)-1]
- }
+ buf = bytes.TrimSuffix(buf, []byte{'\n'})
r := NewRecord(time.Now(), level, string(buf), pc)
return origLen, w.h.Handle(context.Background(), r)
}
"internal/bytealg"
"internal/godebug"
"internal/itoa"
+ "internal/stringslite"
"io"
"os"
"runtime"
if name == "" {
return true
}
- if name[len(name)-1] == '.' {
- name = name[:len(name)-1]
- }
+ name = stringslite.TrimSuffix(name, ".")
return stringsHasSuffixFold(name, ".onion")
}
// From here on: If the cookie is valid, it is a domain cookie (with
// the one exception of a public suffix below).
// See RFC 6265 section 5.2.3.
- if domain[0] == '.' {
- domain = domain[1:]
- }
+ domain = strings.TrimPrefix(domain, ".")
if len(domain) == 0 || domain[0] == '.' {
// Received either "Domain=." or "Domain=..some.thing",
import (
"internal/abi"
+ "internal/stringslite"
"unsafe"
)
executablePath = gostringnocopy(argv_index(argv, n+1))
// strip "executable_path=" prefix if available, it's added after OS X 10.11.
- const prefix = "executable_path="
- if len(executablePath) > len(prefix) && executablePath[:len(prefix)] == prefix {
- executablePath = executablePath[len(prefix):]
- }
+ executablePath = stringslite.TrimPrefix(executablePath, "executable_path=")
}
func signalM(mp *m, sig int) {