mirror of
https://github.com/golang/go
synced 2024-11-12 07:00:21 -07:00
fmt: fix end-of-array error in parsenum.
Fixes #821. R=rsc CC=golang-dev https://golang.org/cl/1434041
This commit is contained in:
parent
ebb1c8b912
commit
ce9da214b7
@ -265,6 +265,7 @@ var fmttests = []fmtTest{
|
||||
fmtTest{"no args", "hello", "no args?(extra string=hello)"},
|
||||
fmtTest{"%s", nil, "%s(<nil>)"},
|
||||
fmtTest{"%T", nil, "<nil>"},
|
||||
fmtTest{"%-1", 100, "%1(int=100)"},
|
||||
}
|
||||
|
||||
func TestSprintf(t *testing.T) {
|
||||
|
@ -511,19 +511,15 @@ func getComplex128(a interface{}) (val complex128, ok bool) {
|
||||
}
|
||||
|
||||
// Convert ASCII to integer. n is 0 (and got is false) if no number present.
|
||||
|
||||
func parsenum(s string, start, end int) (n int, got bool, newi int) {
|
||||
func parsenum(s string, start, end int) (num int, isnum bool, newi int) {
|
||||
if start >= end {
|
||||
return 0, false, end
|
||||
}
|
||||
isnum := false
|
||||
num := 0
|
||||
for '0' <= s[start] && s[start] <= '9' {
|
||||
num = num*10 + int(s[start]-'0')
|
||||
start++
|
||||
for newi = start; newi < end && '0' <= s[newi] && s[newi] <= '9'; newi++ {
|
||||
num = num*10 + int(s[newi]-'0')
|
||||
isnum = true
|
||||
}
|
||||
return num, isnum, start
|
||||
return
|
||||
}
|
||||
|
||||
type uintptrGetter interface {
|
||||
|
Loading…
Reference in New Issue
Block a user