1
0
mirror of https://github.com/golang/go synced 2024-11-23 01:30:02 -07:00

all: revert "all: prefer strings.IndexByte over strings.Index"

This reverts https://golang.org/cl/65930.

Fixes #22148

Change-Id: Ie0712621ed89c43bef94417fc32de9af77607760
Reviewed-on: https://go-review.googlesource.com/68430
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Marvin Stenger 2017-10-05 15:49:32 +02:00 committed by Ian Lance Taylor
parent 7e31d9b9f7
commit 90d71fe99e
55 changed files with 81 additions and 81 deletions

View File

@ -189,7 +189,7 @@ func main() {
features = append(features, f)
continue
}
comma := strings.IndexByte(f, ',')
comma := strings.Index(f, ",")
for cname := range cmap {
f2 := fmt.Sprintf("%s (%s)%s", f[:comma], cname, f[comma:])
features = append(features, f2)

View File

@ -204,7 +204,7 @@ func (p *Package) loadDefines(f *File) {
line = strings.TrimSpace(line[8:])
var key, val string
spaceIndex := strings.IndexByte(line, ' ')
spaceIndex := strings.Index(line, " ")
tabIndex := strings.Index(line, "\t")
if spaceIndex == -1 && tabIndex == -1 {
@ -364,11 +364,11 @@ func (p *Package) guessKinds(f *File) []*Name {
continue
}
c1 := strings.IndexByte(line, ':')
c1 := strings.Index(line, ":")
if c1 < 0 {
continue
}
c2 := strings.IndexByte(line[c1+1:], ':')
c2 := strings.Index(line[c1+1:], ":")
if c2 < 0 {
continue
}
@ -2538,7 +2538,7 @@ func fieldPrefix(fld []*ast.Field) string {
if strings.HasPrefix(n.Name, "orig_") || strings.HasPrefix(n.Name, "_") {
continue
}
i := strings.IndexByte(n.Name, '_')
i := strings.Index(n.Name, "_")
if i < 0 {
continue
}

View File

@ -41,7 +41,7 @@ func (p *Package) godefs(f *File, srcfile string) string {
continue
}
s := strings.TrimSpace(c.Text[i+len("+godefs map"):])
i = strings.IndexByte(s, ' ')
i = strings.Index(s, " ")
if i < 0 {
fmt.Fprintf(os.Stderr, "invalid +godefs map comment: %s\n", c.Text)
continue

View File

@ -540,7 +540,7 @@ func init() {
for key, val := range knownFormats {
// key must be "typename format", and format starts with a '%'
// (formats containing '*' alone are not collected in this table)
i := strings.IndexByte(key, '%')
i := strings.Index(key, "%")
if i < 0 || !oneFormat(key[i:]) {
log.Fatalf("incorrect knownFormats key: %q", key)
}

View File

@ -364,7 +364,7 @@ func Main(archInit func(*Arch)) {
// _ in phase name also matches space
phase := name[4:]
flag := "debug" // default flag is debug
if i := strings.IndexByte(phase, '/'); i >= 0 {
if i := strings.Index(phase, "/"); i >= 0 {
flag = phase[i+1:]
phase = phase[:i]
}
@ -689,7 +689,7 @@ func addImportMap(s string) {
if strings.Count(s, "=") != 1 {
log.Fatal("-importmap argument must be of the form source=actual")
}
i := strings.IndexByte(s, '=')
i := strings.Index(s, "=")
source, actual := s[:i], s[i+1:]
if source == "" || actual == "" {
log.Fatal("-importmap argument must be of the form source=actual; source and actual must be non-empty")
@ -712,13 +712,13 @@ func readImportCfg(file string) {
}
var verb, args string
if i := strings.IndexByte(line, ' '); i < 0 {
if i := strings.Index(line, " "); i < 0 {
verb = line
} else {
verb, args = line[:i], strings.TrimSpace(line[i+1:])
}
var before, after string
if i := strings.IndexByte(args, '='); i >= 0 {
if i := strings.Index(args, "="); i >= 0 {
before, after = args[:i], args[i+1:]
}
switch verb {

View File

@ -1273,7 +1273,7 @@ func (p *noder) pragma(pos src.Pos, text string) syntax.Pragma {
fallthrough // because of //go:cgo_unsafe_args
default:
verb := text
if i := strings.IndexByte(text, ' '); i >= 0 {
if i := strings.Index(text, " "); i >= 0 {
verb = verb[:i]
}
prag := pragmaValue(verb)

View File

@ -1045,7 +1045,7 @@ func (lv *Liveness) showlive(v *ssa.Value, live bvec) {
s += fmt.Sprintf("entry to %s:", lv.fn.funcname())
} else if sym, ok := v.Aux.(*obj.LSym); ok {
fn := sym.Name
if pos := strings.IndexByte(fn, '.'); pos >= 0 {
if pos := strings.Index(fn, "."); pos >= 0 {
fn = fn[pos+1:]
}
s += fmt.Sprintf("call to %s:", fn)

View File

@ -475,8 +475,8 @@ func genMatch0(w io.Writer, arch arch, match, v string, m map[string]struct{}, t
}
// compound sexpr
var argname string
colon := strings.IndexByte(arg, ':')
openparen := strings.IndexByte(arg, '(')
colon := strings.Index(arg, ":")
openparen := strings.Index(arg, "(")
if colon >= 0 && openparen >= 0 && colon < openparen {
// rule-specified name
argname = arg[:colon]
@ -817,7 +817,7 @@ func commute1(m string, cnt map[string]int, arch arch) []string {
}
// Split up input.
var prefix string
colon := strings.IndexByte(m, ':')
colon := strings.Index(m, ":")
if colon >= 0 && isVariable(m[:colon]) {
prefix = m[:colon+1]
m = m[colon+1:]
@ -912,7 +912,7 @@ func varCount1(m string, cnt map[string]int) {
return
}
// Split up input.
colon := strings.IndexByte(m, ':')
colon := strings.Index(m, ":")
if colon >= 0 && isVariable(m[:colon]) {
cnt[m[:colon]]++
m = m[colon+1:]

View File

@ -313,7 +313,7 @@ func testPos(t *testing.T, list []test, prefix, suffix string, extract func(*Fil
}
func stripAt(s string) (string, int) {
if i := strings.IndexByte(s, '@'); i >= 0 {
if i := strings.Index(s, "@"); i >= 0 {
return s[:i] + s[i+1:], i
}
return s, -1

View File

@ -137,7 +137,7 @@ func main() {
// so OS X 10.6 is uname version 10 and OS X 10.8 is uname version 12.
if gohostos == "darwin" {
rel := run("", CheckExit, "uname", "-r")
if i := strings.IndexByte(rel, '.'); i >= 0 {
if i := strings.Index(rel, "."); i >= 0 {
rel = rel[:i]
}
osx, _ := strconv.Atoi(rel)

View File

@ -215,7 +215,7 @@ func parseArgs(args []string) (pkg *build.Package, path, symbol string, more boo
// slash+1: if there's no slash, the value is -1 and start is 0; otherwise
// start is the byte after the slash.
for start := slash + 1; start < len(arg); start = period + 1 {
period = strings.IndexByte(arg[start:], '.')
period = strings.Index(arg[start:], ".")
symbol := ""
if period < 0 {
period = len(arg)

View File

@ -791,7 +791,7 @@ func renameFix(tab []rename) func(*ast.File) bool {
}
func parseName(s string) (ptr bool, pkg, nam string) {
i := strings.IndexByte(s, '.')
i := strings.Index(s, ".")
if i < 0 {
panic("parseName: invalid name " + s)
}

View File

@ -471,7 +471,7 @@ func typecheck1(cfg *TypeConfig, f interface{}, typeof map[interface{}]string, a
if strings.HasPrefix(t, "[") || strings.HasPrefix(t, "map[") {
// Lazy: assume there are no nested [] in the array
// length or map key type.
if i := strings.IndexByte(t, ']'); i >= 0 {
if i := strings.Index(t, "]"); i >= 0 {
typeof[n] = t[i+1:]
}
}
@ -512,11 +512,11 @@ func typecheck1(cfg *TypeConfig, f interface{}, typeof map[interface{}]string, a
key, value = "int", "rune"
} else if strings.HasPrefix(t, "[") {
key = "int"
if i := strings.IndexByte(t, ']'); i >= 0 {
if i := strings.Index(t, "]"); i >= 0 {
value = t[i+1:]
}
} else if strings.HasPrefix(t, "map[") {
if i := strings.IndexByte(t, ']'); i >= 0 {
if i := strings.Index(t, "]"); i >= 0 {
key, value = t[4:i], t[i+1:]
}
}

View File

@ -223,7 +223,7 @@ func (tg *testgoData) parallel() {
}
for _, e := range tg.env {
if strings.HasPrefix(e, "GOROOT=") || strings.HasPrefix(e, "GOPATH=") || strings.HasPrefix(e, "GOBIN=") {
val := e[strings.IndexByte(e, '=')+1:]
val := e[strings.Index(e, "=")+1:]
if strings.HasPrefix(val, "testdata") || strings.HasPrefix(val, "./testdata") {
tg.t.Fatalf("internal testsuite error: call to parallel with testdata in environment (%s)", e)
}

View File

@ -54,7 +54,7 @@ var Commands []*Command
// Name returns the command's name: the first word in the usage line.
func (c *Command) Name() string {
name := c.UsageLine
i := strings.IndexByte(name, ' ')
i := strings.Index(name, " ")
if i >= 0 {
name = name[:i]
}

View File

@ -87,7 +87,7 @@ func Parse(cmd string, defns []*Defn, args []string, i int) (f *Defn, value stri
name := arg[1:]
// If there's already a prefix such as "test.", drop it for now.
name = strings.TrimPrefix(name, cmd+".")
equals := strings.IndexByte(name, '=')
equals := strings.Index(name, "=")
if equals >= 0 {
value = name[equals+1:]
name = name[:equals]

View File

@ -501,7 +501,7 @@ func downloadPackage(p *load.Package) error {
return err
}
vers := runtime.Version()
if i := strings.IndexByte(vers, ' '); i >= 0 {
if i := strings.Index(vers, " "); i >= 0 {
vers = vers[:i]
}
if err := vcs.tagSync(root, selectTag(vers, tags)); err != nil {

View File

@ -755,7 +755,7 @@ func repoRootFromVCSPaths(importPath, scheme string, security web.SecurityMode,
//
// This handles custom import paths like "name.tld/pkg/foo" or just "name.tld".
func repoRootForImportDynamic(importPath string, security web.SecurityMode) (*repoRoot, error) {
slash := strings.IndexByte(importPath, '/')
slash := strings.Index(importPath, "/")
if slash < 0 {
slash = len(importPath)
}

View File

@ -139,7 +139,7 @@ func testStringPairs(t *testing.T, name string, tests []stringPairTest, f func(s
func testPatterns(t *testing.T, name, tests string, fn func(string, string) bool) {
var patterns []string
for _, line := range strings.Split(tests, "\n") {
if i := strings.IndexByte(line, '#'); i >= 0 {
if i := strings.Index(line, "#"); i >= 0 {
line = line[:i]
}
f := strings.Fields(line)

View File

@ -226,7 +226,7 @@ func (p *Package) copyBuild(pp *build.Package) {
// their own code to $GOROOT instead of using $GOPATH, but we assume that
// code will start with a domain name (dot in the first element).
func isStandardImportPath(path string) bool {
i := strings.IndexByte(path, '/')
i := strings.Index(path, "/")
if i < 0 {
i = len(path)
}

View File

@ -844,7 +844,7 @@ var zeros [512]byte
var strdata []*sym.Symbol
func addstrdata1(ctxt *Link, arg string) {
eq := strings.IndexByte(arg, '=')
eq := strings.Index(arg, "=")
dot := strings.LastIndex(arg[:eq+1], ".")
if eq < 0 || dot < 0 {
Exitf("-X flag requires argument of the form importpath.name=value")

View File

@ -327,7 +327,7 @@ func (d *deadcodepass) flood() {
}
for i, m := range methodsigs {
name := string(m)
name = name[:strings.IndexByte(name, '(')]
name = name[:strings.Index(name, "(")]
if !strings.HasSuffix(methods[i].ifn().Name, name) {
panic(fmt.Sprintf("%q relocation for %q does not match method %q", s.Name, methods[i].ifn().Name, name))
}

View File

@ -181,7 +181,7 @@ func loadcgo(ctxt *Link, file string, pkg string, p string) {
local = expandpkg(local, pkg)
q = ""
if i := strings.IndexByte(remote, '#'); i >= 0 {
if i := strings.Index(remote, "#"); i >= 0 {
remote, q = remote[:i], remote[i+1:]
}
s = ctxt.Syms.Lookup(local, 0)

View File

@ -61,13 +61,13 @@ func (ctxt *Link) readImportCfg(file string) {
}
var verb, args string
if i := strings.IndexByte(line, ' '); i < 0 {
if i := strings.Index(line, " "); i < 0 {
verb = line
} else {
verb, args = line[:i], strings.TrimSpace(line[i+1:])
}
var before, after string
if i := strings.IndexByte(args, '='); i >= 0 {
if i := strings.Index(args, "="); i >= 0 {
before, after = args[:i], args[i+1:]
}
switch verb {

View File

@ -678,7 +678,7 @@ func asmCheckVar(badf func(string, ...interface{}), fn *asmFunc, line, expr stri
// Determine whether the match we're holding
// is the first or second argument.
if strings.Index(line, expr) > strings.IndexByte(line, ',') {
if strings.Index(line, expr) > strings.Index(line, ",") {
kind = dst
} else {
kind = src

View File

@ -303,7 +303,7 @@ func (s *formatState) parseIndex() bool {
start := s.nbytes
s.scanNum()
if s.nbytes == len(s.format) || s.nbytes == start || s.format[s.nbytes] != ']' {
end := strings.IndexByte(s.format, ']')
end := strings.Index(s.format, "]")
if end < 0 {
end = len(s.format)
}

View File

@ -63,7 +63,7 @@ func checkCanonicalFieldTag(f *File, field *ast.Field, seen *map[[2]string]token
// by containing a field named XMLName; see issue 18256.
continue
}
if i := strings.IndexByte(val, ','); i >= 0 {
if i := strings.Index(val, ","); i >= 0 {
if key == "xml" {
// Use a separate namespace for XML attributes.
for _, opt := range strings.Split(val[i:], ",") {

View File

@ -118,7 +118,7 @@ func DecryptPEMBlock(b *pem.Block, password []byte) ([]byte, error) {
return nil, errors.New("x509: no DEK-Info header in block")
}
idx := strings.IndexByte(dek, ',')
idx := strings.Index(dek, ",")
if idx == -1 {
return nil, errors.New("x509: malformed DEK-Info header")
}

View File

@ -161,7 +161,7 @@ func fetchCertIDs() ([]certID, error) {
}
if strings.HasPrefix(ln, sn) {
// extract hex value from parentheses.
id.serialNumber = ln[strings.IndexByte(ln, '(')+1 : len(ln)-1]
id.serialNumber = ln[strings.Index(ln, "(")+1 : len(ln)-1]
continue
}
if strings.TrimSpace(ln) == "X509v3 Subject Key Identifier:" {

View File

@ -45,7 +45,7 @@ func (s *Sym) PackageName() string {
pathend = 0
}
if i := strings.IndexByte(s.Name[pathend:], '.'); i != -1 {
if i := strings.Index(s.Name[pathend:], "."); i != -1 {
return s.Name[:pathend+i]
}
return ""
@ -58,7 +58,7 @@ func (s *Sym) ReceiverName() string {
if pathend < 0 {
pathend = 0
}
l := strings.IndexByte(s.Name[pathend:], '.')
l := strings.Index(s.Name[pathend:], ".")
r := strings.LastIndexByte(s.Name[pathend:], '.')
if l == -1 || r == -1 || l == r {
return ""

View File

@ -15,7 +15,7 @@ type tagOptions string
// parseTag splits a struct field's json tag into its name and
// comma-separated options.
func parseTag(tag string) (string, tagOptions) {
if idx := strings.IndexByte(tag, ','); idx != -1 {
if idx := strings.Index(tag, ","); idx != -1 {
return tag[:idx], tagOptions(tag[idx+1:])
}
return tag, tagOptions("")
@ -31,7 +31,7 @@ func (o tagOptions) Contains(optionName string) bool {
s := string(o)
for s != "" {
var next string
i := strings.IndexByte(s, ',')
i := strings.Index(s, ",")
if i >= 0 {
s, next = s[:i], s[i+1:]
}

View File

@ -115,7 +115,7 @@ func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, erro
// Split the tag from the xml namespace if necessary.
tag := f.Tag.Get("xml")
if i := strings.IndexByte(tag, ' '); i >= 0 {
if i := strings.Index(tag, " "); i >= 0 {
finfo.xmlns, tag = tag[:i], tag[i+1:]
}

View File

@ -1161,7 +1161,7 @@ func (d *Decoder) nsname() (name Name, ok bool) {
if !ok {
return
}
i := strings.IndexByte(s, ':')
i := strings.Index(s, ":")
if i < 0 {
name.Local = s
} else {

View File

@ -1247,7 +1247,7 @@ func (ctxt *Context) saveCgo(filename string, di *Package, cg *ast.CommentGroup)
// Split at colon.
line = strings.TrimSpace(line[4:])
i := strings.IndexByte(line, ':')
i := strings.Index(line, ":")
if i < 0 {
return fmt.Errorf("%s: invalid #cgo line: %s", filename, orig)
}
@ -1462,7 +1462,7 @@ func (ctxt *Context) match(name string, allTags map[string]bool) bool {
}
return false
}
if i := strings.IndexByte(name, ','); i >= 0 {
if i := strings.Index(name, ","); i >= 0 {
// comma-separated list
ok1 := ctxt.match(name[:i], allTags)
ok2 := ctxt.match(name[i+1:], allTags)
@ -1526,7 +1526,7 @@ func (ctxt *Context) match(name string, allTags map[string]bool) bool {
//
// An exception: if GOOS=android, then files with GOOS=linux are also matched.
func (ctxt *Context) goodOSArchFile(name string, allTags map[string]bool) bool {
if dot := strings.IndexByte(name, '.'); dot != -1 {
if dot := strings.Index(name, "."); dot != -1 {
name = name[:dot]
}
@ -1537,7 +1537,7 @@ func (ctxt *Context) goodOSArchFile(name string, allTags map[string]bool) bool {
// systems, such as android, to arrive without breaking existing code with
// innocuous source code in "android.go". The easiest fix: cut everything
// in the name before the initial _.
i := strings.IndexByte(name, '_')
i := strings.Index(name, "_")
if i < 0 {
return true
}

View File

@ -537,7 +537,7 @@ func stripCommonPrefix(lines []string) {
* Check for vertical "line of stars" and correct prefix accordingly.
*/
lineOfStars := false
if i := strings.IndexByte(prefix, '*'); i >= 0 {
if i := strings.Index(prefix, "*"); i >= 0 {
// Line of stars present.
if i > 0 && prefix[i-1] == ' ' {
i-- // remove trailing blank from prefix so stars remain aligned

View File

@ -374,7 +374,7 @@ func isJSType(mimeType string) bool {
// https://www.ietf.org/rfc/rfc4627.txt
mimeType = strings.ToLower(mimeType)
// discard parameters
if i := strings.IndexByte(mimeType, ';'); i >= 0 {
if i := strings.Index(mimeType, ";"); i >= 0 {
mimeType = mimeType[:i]
}
mimeType = strings.TrimSpace(mimeType)

View File

@ -49,7 +49,7 @@ func (z *Rat) SetString(s string) (*Rat, bool) {
// len(s) > 0
// parse fraction a/b, if any
if sep := strings.IndexByte(s, '/'); sep >= 0 {
if sep := strings.Index(s, "/"); sep >= 0 {
if _, ok := z.a.SetString(s[:sep], 0); !ok {
return nil, false
}

View File

@ -257,7 +257,7 @@ func (d *WordDecoder) DecodeHeader(header string) (string, error) {
}
cur := start + len("=?")
i := strings.IndexByte(header[cur:], '?')
i := strings.Index(header[cur:], "?")
if i == -1 {
break
}

View File

@ -20,7 +20,7 @@ import (
// FormatMediaType returns the empty string.
func FormatMediaType(t string, param map[string]string) string {
var b bytes.Buffer
if slash := strings.IndexByte(t, '/'); slash == -1 {
if slash := strings.Index(t, "/"); slash == -1 {
if !isToken(t) {
return ""
}
@ -110,7 +110,7 @@ var ErrInvalidMediaParameter = errors.New("mime: invalid media parameter")
// The returned map, params, maps from the lowercase
// attribute to the attribute value with its case preserved.
func ParseMediaType(v string) (mediatype string, params map[string]string, err error) {
i := strings.IndexByte(v, ';')
i := strings.Index(v, ";")
if i == -1 {
i = len(v)
}
@ -146,7 +146,7 @@ func ParseMediaType(v string) (mediatype string, params map[string]string, err e
}
pmap := params
if idx := strings.IndexByte(key, '*'); idx != -1 {
if idx := strings.Index(key, "*"); idx != -1 {
baseName := key[:idx]
if continuation == nil {
continuation = make(map[string]map[string]string)

View File

@ -40,7 +40,7 @@ func Request() (*http.Request, error) {
func envMap(env []string) map[string]string {
m := make(map[string]string)
for _, kv := range env {
if idx := strings.IndexByte(kv, '='); idx != -1 {
if idx := strings.Index(kv, "="); idx != -1 {
m[kv[:idx]] = kv[idx+1:]
}
}

View File

@ -50,7 +50,7 @@ func readSetCookies(h Header) []*Cookie {
continue
}
parts[0] = strings.TrimSpace(parts[0])
j := strings.IndexByte(parts[0], '=')
j := strings.Index(parts[0], "=")
if j < 0 {
continue
}
@ -74,7 +74,7 @@ func readSetCookies(h Header) []*Cookie {
}
attr, val := parts[i], ""
if j := strings.IndexByte(attr, '='); j >= 0 {
if j := strings.Index(attr, "="); j >= 0 {
attr, val = attr[:j], attr[j+1:]
}
lowerAttr := strings.ToLower(attr)
@ -214,7 +214,7 @@ func readCookies(h Header, filter string) []*Cookie {
continue
}
name, val := parts[i], ""
if j := strings.IndexByte(name, '='); j >= 0 {
if j := strings.Index(name, "="); j >= 0 {
name, val = name[:j], name[j+1:]
}
if !isCookieNameValid(name) {

View File

@ -748,7 +748,7 @@ func parseRange(s string, size int64) ([]httpRange, error) {
if ra == "" {
continue
}
i := strings.IndexByte(ra, '-')
i := strings.Index(ra, "-")
if i < 0 {
return nil, errors.New("invalid range")
}

View File

@ -712,7 +712,7 @@ func ParseHTTPVersion(vers string) (major, minor int, ok bool) {
if !strings.HasPrefix(vers, "HTTP/") {
return 0, 0, false
}
dot := strings.IndexByte(vers, '.')
dot := strings.Index(vers, ".")
if dot < 0 {
return 0, 0, false
}
@ -880,8 +880,8 @@ func (r *Request) SetBasicAuth(username, password string) {
// parseRequestLine parses "GET /foo HTTP/1.1" into its three parts.
func parseRequestLine(line string) (method, requestURI, proto string, ok bool) {
s1 := strings.IndexByte(line, ' ')
s2 := strings.IndexByte(line[s1+1:], ' ')
s1 := strings.Index(line, " ")
s2 := strings.Index(line[s1+1:], " ")
if s1 < 0 || s2 < 0 {
return
}

View File

@ -2002,7 +2002,7 @@ func Redirect(w ResponseWriter, r *Request, url string, code int) {
}
var query string
if i := strings.IndexByte(url, '?'); i != -1 {
if i := strings.Index(url, "?"); i != -1 {
url, query = url[:i], url[i:]
}

View File

@ -475,7 +475,7 @@ func TestLookupDotsWithLocalSource(t *testing.T) {
}
loop:
for i, name := range names {
if strings.IndexByte(name, '.') == len(name)-1 { // "localhost" not "localhost."
if strings.Index(name, ".") == len(name)-1 { // "localhost" not "localhost."
for j := range names {
if j == i {
continue

View File

@ -505,8 +505,8 @@ func parse(rawurl string, viaRequest bool) (*URL, error) {
// RFC 3986, §3.3:
// In addition, a URI reference (Section 4.1) may be a relative-path reference,
// in which case the first path segment cannot contain a colon (":") character.
colon := strings.IndexByte(rest, ':')
slash := strings.IndexByte(rest, '/')
colon := strings.Index(rest, ":")
slash := strings.Index(rest, "/")
if colon >= 0 && (slash < 0 || colon < slash) {
// First path segment has colon. Not allowed in relative URL.
return nil, errors.New("first path segment in URL cannot contain colon")
@ -830,7 +830,7 @@ func parseQuery(m Values, query string) (err error) {
continue
}
value := ""
if i := strings.IndexByte(key, '='); i >= 0 {
if i := strings.Index(key, "="); i >= 0 {
key, value = key[:i], key[i+1:]
}
key, err1 := QueryUnescape(key)

View File

@ -104,7 +104,7 @@ func TestClearenv(t *testing.T) {
for _, pair := range origEnv {
// Environment variables on Windows can begin with =
// http://blogs.msdn.com/b/oldnewthing/archive/2010/05/06/10008132.aspx
i := strings.IndexByte(pair[1:], '=') + 1
i := strings.Index(pair[1:], "=") + 1
if err := Setenv(pair[:i], pair[i+1:]); err != nil {
t.Errorf("Setenv(%q, %q) failed during reset: %v", pair[:i], pair[i+1:], err)
}

View File

@ -687,7 +687,7 @@ func dedupEnvCase(caseInsensitive bool, env []string) []string {
out := make([]string, 0, len(env))
saw := map[string]int{} // key => index into out
for _, kv := range env {
eq := strings.IndexByte(kv, '=')
eq := strings.Index(kv, "=")
if eq < 0 {
out = append(out, kv)
continue

View File

@ -1523,7 +1523,7 @@ func TestHostname(t *testing.T) {
}
want := runBinHostname(t)
if hostname != want {
i := strings.IndexByte(hostname, '.')
i := strings.Index(hostname, ".")
if i < 0 || hostname[0:i] != want {
t.Errorf("Hostname() = %q, want %q", hostname, want)
}

View File

@ -124,7 +124,7 @@ func buildUser(pwd *C.struct_passwd) *User {
// say: "It is expected to be a comma separated list of
// personal data where the first item is the full name of the
// user."
if i := strings.IndexByte(u.Name, ','); i >= 0 {
if i := strings.Index(u.Name, ","); i >= 0 {
u.Name = u.Name[:i]
}
return u

View File

@ -131,7 +131,7 @@ func matchUserIndexValue(value string, idx int) lineFunc {
// say: "It is expected to be a comma separated list of
// personal data where the first item is the full name of the
// user."
if i := strings.IndexByte(u.Name, ','); i >= 0 {
if i := strings.Index(u.Name, ","); i >= 0 {
u.Name = u.Name[:i]
}
return u, nil

View File

@ -294,7 +294,7 @@ func parseResult(t *testing.T, file string, lineno int, res string) []int {
out[n] = -1
out[n+1] = -1
} else {
k := strings.IndexByte(pair, '-')
k := strings.Index(pair, "-")
if k < 0 {
t.Fatalf("%s:%d: invalid pair %s", file, lineno, pair)
}
@ -457,7 +457,7 @@ Reading:
continue Reading
}
case ':':
i := strings.IndexByte(flag[1:], ':')
i := strings.Index(flag[1:], ":")
if i < 0 {
t.Logf("skip: %s", line)
continue Reading

View File

@ -829,7 +829,7 @@ func (re *Regexp) ExpandString(dst []byte, template string, src string, match []
func (re *Regexp) expand(dst []byte, template string, bsrc []byte, src string, match []int) []byte {
for len(template) > 0 {
i := strings.IndexByte(template, '$')
i := strings.Index(template, "$")
if i < 0 {
break
}

View File

@ -213,7 +213,7 @@ func profileOk(t *testing.T, need []string, prof bytes.Buffer, duration time.Dur
fprintStack(&buf, stk)
samples += count
for i, name := range need {
if semi := strings.IndexByte(name, ';'); semi > -1 {
if semi := strings.Index(name, ";"); semi > -1 {
kv := strings.SplitN(name[semi+1:], "=", 2)
if len(kv) != 2 || !contains(labels[kv[0]], kv[1]) {
continue

View File

@ -680,7 +680,7 @@ func verifyRange(name string, inCategory Op, table *unicode.RangeTable) {
}
func parseScript(line string, scripts map[string][]Script) {
comment := strings.IndexByte(line, '#')
comment := strings.Index(line, "#")
if comment >= 0 {
line = line[0:comment]
}