Commit a1dbfa6f authored by Andrew Balholm's avatar Andrew Balholm Committed by Nigel Tao

html: parse <isindex>

Pass tests2.dat, test 42:
<isindex test=x name=x>

| <html>
|   <head>
|   <body>
|     <form>
|       <hr>
|       <label>
|         "This is a searchable index. Enter search keywords: "
|         <input>
|           name="isindex"
|           test="x"
|       <hr>

R=nigeltao
CC=golang-dev
https://golang.org/cl/5399049
parent 0b1bcf8f
......@@ -683,6 +683,44 @@ func inBodyIM(p *parser) bool {
case "image":
p.tok.Data = "img"
return false
case "isindex":
if p.form != nil {
// Ignore the token.
return true
}
action := ""
prompt := "This is a searchable index. Enter search keywords: "
attr := []Attribute{{Key: "name", Val: "isindex"}}
for _, a := range p.tok.Attr {
switch a.Key {
case "action":
action = a.Val
case "name":
// Ignore the attribute.
case "prompt":
prompt = a.Val
default:
attr = append(attr, a)
}
}
p.acknowledgeSelfClosingTag()
p.popUntil(buttonScopeStopTags, "p")
p.addElement("form", nil)
p.form = p.top()
if action != "" {
p.form.Attr = []Attribute{{Key: "action", Val: action}}
}
p.addElement("hr", nil)
p.oe.pop()
p.addElement("label", nil)
p.addText(prompt)
p.addElement("input", attr)
p.oe.pop()
p.oe.pop()
p.addElement("hr", nil)
p.oe.pop()
p.oe.pop()
p.form = nil
case "caption", "col", "colgroup", "frame", "head", "tbody", "td", "tfoot", "th", "thead", "tr":
// Ignore the token.
default:
......
......@@ -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", 42},
{"tests2.dat", 43},
{"tests3.dat", 0},
}
for _, tf := range testFiles {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment