html: don't leave "in column group" mode when ignoring a token
Pass tests6.dat, test 26:
foo<col>
| <col>
Also pass tests through test 35:
<table><tr><div><td>
R=nigeltao
CC=golang-dev
https://golang.org/cl/5482074
diff --git a/src/pkg/html/parse.go b/src/pkg/html/parse.go
index 6618600..4cb2469 100644
--- a/src/pkg/html/parse.go
+++ b/src/pkg/html/parse.go
@@ -1166,8 +1166,8 @@
case "colgroup":
if p.oe.top().Data != "html" {
p.oe.pop()
+ p.im = inTableIM
}
- p.im = inTableIM
return true
case "col":
// Ignore the token.
@@ -1176,9 +1176,10 @@
}
if p.oe.top().Data != "html" {
p.oe.pop()
+ p.im = inTableIM
+ return false
}
- p.im = inTableIM
- return false
+ return true
}
// Section 12.2.5.4.13.
diff --git a/src/pkg/html/parse_test.go b/src/pkg/html/parse_test.go
index f44bf63..e887631 100644
--- a/src/pkg/html/parse_test.go
+++ b/src/pkg/html/parse_test.go
@@ -172,7 +172,7 @@
{"tests3.dat", -1},
{"tests4.dat", -1},
{"tests5.dat", -1},
- {"tests6.dat", 26},
+ {"tests6.dat", 36},
}
for _, tf := range testFiles {
f, err := os.Open("testdata/webkit/" + tf.filename)