1
0
mirror of https://github.com/golang/go synced 2024-09-25 01:10:13 -06: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:
Rob Pike 2010-05-31 14:57:32 -07:00
parent ebb1c8b912
commit ce9da214b7
2 changed files with 5 additions and 8 deletions

View File

@ -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) {

View File

@ -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 {