aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/xml/xml.go
diff options
context:
space:
mode:
authorRoger Peppe <rogpeppe@gmail.com>2015-04-24 17:20:21 +0100
committerroger peppe <rogpeppe@gmail.com>2015-04-27 15:38:04 +0000
commit4a3e000a48fdfe4cbcfe8970db9c1ebec9c4b89d (patch)
treea84725971fefd062a64ec8f53177535f5e0e2e2d /src/encoding/xml/xml.go
parentb0b1a660526925d39c5c31e18df68db4d5b6687a (diff)
downloadgo-4a3e000a48fdfe4cbcfe8970db9c1ebec9c4b89d.tar.xz
encoding/xml: do not escape newlines
There is no need to escape newlines in char data - it makes the XML larger and harder to read. Change-Id: I1c1fcee1bdffc705c7428f89ca90af8085d6fb73 Reviewed-on: https://go-review.googlesource.com/9310 Reviewed-by: Nigel Tao <nigeltao@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/encoding/xml/xml.go')
-rw-r--r--src/encoding/xml/xml.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/encoding/xml/xml.go b/src/encoding/xml/xml.go
index 0c64cd730d..00792c4f27 100644
--- a/src/encoding/xml/xml.go
+++ b/src/encoding/xml/xml.go
@@ -1863,6 +1863,13 @@ var (
// EscapeText writes to w the properly escaped XML equivalent
// of the plain text data s.
func EscapeText(w io.Writer, s []byte) error {
+ return escapeText(w, s, true)
+}
+
+// escapeText writes to w the properly escaped XML equivalent
+// of the plain text data s. If escapeNewline is true, newline
+// characters will be escaped.
+func escapeText(w io.Writer, s []byte, escapeNewline bool) error {
var esc []byte
last := 0
for i := 0; i < len(s); {
@@ -1882,6 +1889,9 @@ func EscapeText(w io.Writer, s []byte) error {
case '\t':
esc = esc_tab
case '\n':
+ if !escapeNewline {
+ continue
+ }
esc = esc_nl
case '\r':
esc = esc_cr