projects
/
prosody.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
4b39eb7
)
util.stanza: Escape newlines and tabs (\r\n\t) when serializing stanzas. \r\n transfo...
author
Waqas Hussain
<waqas20@gmail.com>
Wed, 8 Oct 2014 19:56:11 +0000
(15:56 -0400)
committer
Waqas Hussain
<waqas20@gmail.com>
Wed, 8 Oct 2014 19:56:11 +0000
(15:56 -0400)
util/stanza.lua
patch
|
blob
|
history
diff --git
a/util/stanza.lua
b/util/stanza.lua
index 7c21421083d57daafbcf2ad807c3d7b7166c36a5..2fcf2c79195eb6317614be46bf025ca4727e704f 100644
(file)
--- a/
util/stanza.lua
+++ b/
util/stanza.lua
@@
-202,8
+202,19
@@
end
local xml_escape
do
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
_M.xml_escape = xml_escape;
end