Commit c90b05bf authored by Stephen Weinberg's avatar Stephen Weinberg Committed by Russ Cox

xml: add Escape, copied from template.HTMLEscape.

R=rsc
CC=golang-dev
https://golang.org/cl/186282
parent 9f3738a4
...@@ -1479,3 +1479,38 @@ var htmlAutoClose = []string{ ...@@ -1479,3 +1479,38 @@ var htmlAutoClose = []string{
"base", "base",
"meta", "meta",
} }
var (
esc_quot = strings.Bytes(""") // shorter than """
esc_apos = strings.Bytes("'") // shorter than "'"
esc_amp = strings.Bytes("&")
esc_lt = strings.Bytes("<")
esc_gt = strings.Bytes(">")
)
// Escape writes to w the properly escaped XML equivalent
// of the plain text data s.
func Escape(w io.Writer, s []byte) {
var esc []byte
last := 0
for i, c := range s {
switch c {
case '"':
esc = esc_quot
case '\'':
esc = esc_apos
case '&':
esc = esc_amp
case '<':
esc = esc_lt
case '>':
esc = esc_gt
default:
continue
}
w.Write(s[last:i])
w.Write(esc)
last = i + 1
}
w.Write(s[last:])
}
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