Software /
code /
prosody
Diff
util/stanza.lua @ 6468:3728c30da4e3
Merge 0.9->0.10
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Wed, 08 Oct 2014 18:42:33 -0400 |
parent | 5776:bd0ff8ae98a8 |
parent | 6466:6e67c73f730c |
child | 6501:71b6e8b48a12 |
line wrap: on
line diff
--- a/util/stanza.lua Sun Oct 05 15:37:21 2014 +0200 +++ b/util/stanza.lua Wed Oct 08 18:42:33 2014 -0400 @@ -202,8 +202,19 @@ local xml_escape do - local escape_table = { ["'"] = "'", ["\""] = """, ["<"] = "<", [">"] = ">", ["&"] = "&" }; - function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end + local escape_table = { + ["'"] = "'"; + ['"'] = """; + ["<"] = "<"; + [">"] = ">"; + ["&"] = "&"; + -- escape this whitespace because [\r\n\t] change into spaces in attributes + -- and \r\n changes into \n in text, and we want to preserve original bytes + ["\t"] = "	"; + ["\n"] = "
"; + ["\r"] = "
"; + }; + function xml_escape(str) return (s_gsub(str, "['&<>\"\t\n\r]", escape_table)); end _M.xml_escape = xml_escape; end