// process header lines
for data != "" {
var line string
- if i := strings.Index(data, "\n"); i >= 0 {
- line, data = data[:i], data[i+1:]
- } else {
- line, data = data, ""
- }
+ line, data, _ = strings.Cut(data, "\n")
if line == "main" {
lib.Main = true
}
}
q := ""
- if i := strings.Index(remote, "#"); i >= 0 {
- remote, q = remote[:i], remote[i+1:]
+ if before, after, found := strings.Cut(remote, "#"); found {
+ remote, q = before, after
}
s := l.LookupOrCreateSym(local, 0)
st := l.SymType(s)
continue
}
- var verb, args string
- if i := strings.Index(line, " "); i < 0 {
- verb = line
- } else {
- verb, args = line[:i], strings.TrimSpace(line[i+1:])
+ verb, args, found := strings.Cut(line, " ")
+ if found {
+ args = strings.TrimSpace(args)
}
- var before, after string
- if i := strings.Index(args, "="); i >= 0 {
- before, after = args[:i], args[i+1:]
+ before, after, exist := strings.Cut(args, "=")
+ if !exist {
+ before = ""
}
switch verb {
default: