From 4a3e000a48fdfe4cbcfe8970db9c1ebec9c4b89d Mon Sep 17 00:00:00 2001 From: Roger Peppe Date: Fri, 24 Apr 2015 17:20:21 +0100 Subject: 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 Reviewed-by: Russ Cox --- src/encoding/xml/xml.go | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/encoding/xml/xml.go') 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 -- cgit v1.3