]> Cypherpunks repositories - gostls13.git/commitdiff
fmt: scan FALSE correctly
authorRob Pike <r@golang.org>
Thu, 9 Feb 2012 03:12:55 +0000 (14:12 +1100)
committerRob Pike <r@golang.org>
Thu, 9 Feb 2012 03:12:55 +0000 (14:12 +1100)
Fixes bug 2922.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5642072

src/pkg/fmt/scan.go
src/pkg/fmt/scan_test.go

index 36c6aebad0e12f244a7b89384d579e87bbd5d9c4..fa9a5584a883f68a420be7e6d48f1b724fed66bc 100644 (file)
@@ -512,7 +512,7 @@ func (s *ss) scanBool(verb rune) bool {
                }
                return true
        case 'f', 'F':
-               if s.accept("aL") && (!s.accept("lL") || !s.accept("sS") || !s.accept("eE")) {
+               if s.accept("aA") && (!s.accept("lL") || !s.accept("sS") || !s.accept("eE")) {
                        s.error(boolError)
                }
                return false
index b26c828cbfc12989c774f5112f94ad40bfb6fb5f..61b48f9cc6d3f265173c191ebcab8975f7626a6e 100644 (file)
@@ -317,6 +317,7 @@ var overflowTests = []ScanTest{
        {"(1-1e500i)", &complex128Val, 0},
 }
 
+var truth bool
 var i, j, k int
 var f float64
 var s, t string
@@ -350,6 +351,9 @@ var multiTests = []ScanfMultiTest{
 
        // Bad UTF-8: should see every byte.
        {"%c%c%c", "\xc2X\xc2", args(&r1, &r2, &r3), args(utf8.RuneError, 'X', utf8.RuneError), ""},
+
+       // Fixed bugs
+       {"%v%v", "FALSE23", args(&truth, &i), args(false, 23), ""},
 }
 
 func testScan(name string, t *testing.T, scan func(r io.Reader, a ...interface{}) (int, error)) {