diff options
| author | Brad Fitzpatrick <bradfitz@golang.org> | 2013-02-01 08:41:25 -0800 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2013-02-01 08:41:25 -0800 |
| commit | e515d80d5dfd5621a16f6fc9f08cc3c0958a8414 (patch) | |
| tree | 343538fd82efacfb61675e27dc2ebf19b0b6057e /src/cmd | |
| parent | fe14ee52ccf89fa02366a06fe892a7fcf135e214 (diff) | |
| download | go-e515d80d5dfd5621a16f6fc9f08cc3c0958a8414.tar.xz | |
bytes, strings: add TrimPrefix and TrimSuffix
Everybody either gets confused and thinks this is
TrimLeft/TrimRight or does this by hand which gets
repetitive looking.
R=rsc, kevlar
CC=golang-dev
https://golang.org/cl/7239044
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/api/goapi.go | 3 | ||||
| -rw-r--r-- | src/cmd/cgo/gcc.go | 4 | ||||
| -rw-r--r-- | src/cmd/cgo/godefs.go | 2 | ||||
| -rw-r--r-- | src/cmd/fix/typecheck.go | 4 | ||||
| -rw-r--r-- | src/cmd/go/testflag.go | 4 | ||||
| -rw-r--r-- | src/cmd/godoc/dirtrees.go | 13 | ||||
| -rw-r--r-- | src/cmd/godoc/filesystem.go | 4 | ||||
| -rw-r--r-- | src/cmd/godoc/godoc.go | 4 | ||||
| -rw-r--r-- | src/cmd/godoc/main.go | 2 | ||||
| -rw-r--r-- | src/cmd/vet/method.go | 4 |
10 files changed, 13 insertions, 31 deletions
diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go index 906cd3a68d..0d76b0cdb6 100644 --- a/src/cmd/api/goapi.go +++ b/src/cmd/api/goapi.go @@ -778,8 +778,7 @@ func (w *Walker) walkConst(vs *ast.ValueSpec) { } } } - if strings.HasPrefix(litType, constDepPrefix) { - dep := litType[len(constDepPrefix):] + if dep := strings.TrimPrefix(litType, constDepPrefix); dep != litType { w.constDep[ident.Name] = dep continue } diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index 3266abe618..1449a8d6b5 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -1542,8 +1542,8 @@ func godefsFields(fld []*ast.Field) { npad := 0 for _, f := range fld { for _, n := range f.Names { - if strings.HasPrefix(n.Name, prefix) && n.Name != prefix { - n.Name = n.Name[len(prefix):] + if n.Name != prefix { + n.Name = strings.TrimPrefix(n.Name, prefix) } if n.Name == "_" { // Use exported name instead. diff --git a/src/cmd/cgo/godefs.go b/src/cmd/cgo/godefs.go index fec70a334b..20376170da 100644 --- a/src/cmd/cgo/godefs.go +++ b/src/cmd/cgo/godefs.go @@ -180,7 +180,7 @@ func (p *Package) cdefs(f *File, srcfile string) string { for _, line := range lines { line = strings.TrimSpace(line) if strings.HasPrefix(line, "type ") && strings.HasSuffix(line, " struct {") { - s := line[len("type ") : len(line)-len(" struct {")] + s := strings.TrimSuffix(strings.TrimPrefix(line, "type "), " struct {") printf("typedef struct %s %s;\n", s, s) } } diff --git a/src/cmd/fix/typecheck.go b/src/cmd/fix/typecheck.go index d54d375478..d33b69fddc 100644 --- a/src/cmd/fix/typecheck.go +++ b/src/cmd/fix/typecheck.go @@ -395,9 +395,7 @@ func typecheck1(cfg *TypeConfig, f interface{}, typeof map[interface{}]string, a // Field or method. name := n.Sel.Name if t := typeof[n.X]; t != "" { - if strings.HasPrefix(t, "*") { - t = t[1:] // implicit * - } + t = strings.TrimPrefix(t, "*") // implicit * if typ := cfg.Type[t]; typ != nil { if t := typ.dot(cfg, name); t != "" { typeof[n] = t diff --git a/src/cmd/go/testflag.go b/src/cmd/go/testflag.go index 8dd51437d7..b2ca66b094 100644 --- a/src/cmd/go/testflag.go +++ b/src/cmd/go/testflag.go @@ -195,9 +195,7 @@ func testFlag(args []string, i int) (f *testFlagSpec, value string, extra bool) } name := arg[1:] // If there's already "test.", drop it for now. - if strings.HasPrefix(name, "test.") { - name = name[5:] - } + name = strings.TrimPrefix(name, "test.") equals := strings.Index(name, "=") if equals >= 0 { value = name[equals+1:] diff --git a/src/cmd/godoc/dirtrees.go b/src/cmd/godoc/dirtrees.go index 29bd39e6b0..08dbfc2e8b 100644 --- a/src/cmd/godoc/dirtrees.go +++ b/src/cmd/godoc/dirtrees.go @@ -229,9 +229,7 @@ func (dir *Directory) lookupLocal(name string) *Directory { } func splitPath(p string) []string { - if strings.HasPrefix(p, "/") { - p = p[1:] - } + p = strings.TrimPrefix(p, "/") if p == "" { return nil } @@ -310,14 +308,9 @@ func (root *Directory) listing(skipRoot bool) *DirList { // the path is relative to root.Path - remove the root.Path // prefix (the prefix should always be present but avoid // crashes and check) - path := d.Path - if strings.HasPrefix(d.Path, root.Path) { - path = d.Path[len(root.Path):] - } + path := strings.TrimPrefix(d.Path, root.Path) // remove leading separator if any - path must be relative - if len(path) > 0 && path[0] == '/' { - path = path[1:] - } + path = strings.TrimPrefix(path, "/") p.Path = path p.Name = d.Name p.HasPkg = d.HasPkg diff --git a/src/cmd/godoc/filesystem.go b/src/cmd/godoc/filesystem.go index c4afbed800..0309d7cabe 100644 --- a/src/cmd/godoc/filesystem.go +++ b/src/cmd/godoc/filesystem.go @@ -459,9 +459,7 @@ func (ns nameSpace) ReadDir(path string) ([]os.FileInfo, error) { if hasPathPrefix(old, path) && old != path { // Find next element after path in old. elem := old[len(path):] - if strings.HasPrefix(elem, "/") { - elem = elem[1:] - } + elem = strings.TrimPrefix(elem, "/") if i := strings.Index(elem, "/"); i >= 0 { elem = elem[:i] } diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go index 4d66c3011c..887480911a 100644 --- a/src/cmd/godoc/godoc.go +++ b/src/cmd/godoc/godoc.go @@ -419,9 +419,7 @@ func pkgLinkFunc(path string) string { relpath := path[1:] // because of the irregular mapping under goroot // we need to correct certain relative paths - if strings.HasPrefix(relpath, "src/pkg/") { - relpath = relpath[len("src/pkg/"):] - } + relpath = strings.TrimPrefix(relpath, "src/pkg/") return pkgHandler.pattern[1:] + relpath // remove trailing '/' for relative URL } diff --git a/src/cmd/godoc/main.go b/src/cmd/godoc/main.go index 02891444b0..1344100906 100644 --- a/src/cmd/godoc/main.go +++ b/src/cmd/godoc/main.go @@ -347,7 +347,7 @@ func main() { fs.Bind(target, OS(path), "/", bindReplace) abspath = target } else if strings.HasPrefix(path, cmdPrefix) { - path = path[len(cmdPrefix):] + path = strings.TrimPrefix(path, cmdPrefix) forceCmd = true } else if bp, _ := build.Import(path, "", build.FindOnly); bp.Dir != "" && bp.ImportPath != "" { fs.Bind(target, OS(bp.Dir), "/", bindReplace) diff --git a/src/cmd/vet/method.go b/src/cmd/vet/method.go index 41df96cec5..dcfa8a02f3 100644 --- a/src/cmd/vet/method.go +++ b/src/cmd/vet/method.go @@ -90,9 +90,7 @@ func (f *File) checkCanonicalMethod(id *ast.Ident, t *ast.FuncType) { fmt.Fprintf(&f.b, "<%s>", err) } actual := f.b.String() - if strings.HasPrefix(actual, "func(") { - actual = actual[4:] - } + actual = strings.TrimPrefix(actual, "func(") actual = id.Name + actual f.Warnf(id.Pos(), "method %s should have signature %s", actual, expectFmt) |
