aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Balholm <andybalholm@gmail.com>2011-11-15 15:31:22 +1100
committerNigel Tao <nigeltao@golang.org>2011-11-15 15:31:22 +1100
commitb91d82258fdab9568f2ccef9f80669c764d4c7ac (patch)
treee7bbcb0feab8ff7da526d8c51b7953bd966c083e /src
parenta619da9f4af538194a0b31e10e0f77340511fe1f (diff)
downloadgo-b91d82258fdab9568f2ccef9f80669c764d4c7ac.tar.xz
html: auto-close <p> elements when starting <form> element.
Pass tests2.dat, test 26: <!doctypehtml><p><form> | <!DOCTYPE html> | <html> | <head> | <body> | <p> | <form> Also pass tests through test 32: <!DOCTYPE html><!-- X R=nigeltao CC=golang-dev https://golang.org/cl/5369114
Diffstat (limited to 'src')
-rw-r--r--src/pkg/html/parse.go6
-rw-r--r--src/pkg/html/parse_test.go2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/pkg/html/parse.go b/src/pkg/html/parse.go
index b92b25c7b0..5b91204240 100644
--- a/src/pkg/html/parse.go
+++ b/src/pkg/html/parse.go
@@ -619,6 +619,12 @@ func inBodyIM(p *parser) bool {
// TODO: detect <select> inside a table.
p.im = inSelectIM
return true
+ case "form":
+ if p.form == nil {
+ p.popUntil(buttonScopeStopTags, "p")
+ p.addElement(p.tok.Data, p.tok.Attr)
+ p.form = p.top()
+ }
case "li":
p.framesetOK = false
for i := len(p.oe) - 1; i >= 0; i-- {
diff --git a/src/pkg/html/parse_test.go b/src/pkg/html/parse_test.go
index 3c278b3145..0fd2dc82b3 100644
--- a/src/pkg/html/parse_test.go
+++ b/src/pkg/html/parse_test.go
@@ -134,7 +134,7 @@ func TestParser(t *testing.T) {
}{
// TODO(nigeltao): Process all the test cases from all the .dat files.
{"tests1.dat", -1},
- {"tests2.dat", 26},
+ {"tests2.dat", 33},
{"tests3.dat", 0},
}
for _, tf := range testFiles {