Comparison

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
comparison
equal deleted inserted replaced
6464:737c81bd898e 6468:3728c30da4e3
200 end 200 end
201 201
202 202
203 local xml_escape 203 local xml_escape
204 do 204 do
205 local escape_table = { ["'"] = "&apos;", ["\""] = "&quot;", ["<"] = "&lt;", [">"] = "&gt;", ["&"] = "&amp;" }; 205 local escape_table = {
206 function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end 206 ["'"] = "&apos;";
207 ['"'] = "&quot;";
208 ["<"] = "&lt;";
209 [">"] = "&gt;";
210 ["&"] = "&amp;";
211 -- escape this whitespace because [\r\n\t] change into spaces in attributes
212 -- and \r\n changes into \n in text, and we want to preserve original bytes
213 ["\t"] = "&#x9;";
214 ["\n"] = "&#xA;";
215 ["\r"] = "&#xD;";
216 };
217 function xml_escape(str) return (s_gsub(str, "['&<>\"\t\n\r]", escape_table)); end
207 _M.xml_escape = xml_escape; 218 _M.xml_escape = xml_escape;
208 end 219 end
209 220
210 local function _dostring(t, buf, self, xml_escape, parentns) 221 local function _dostring(t, buf, self, xml_escape, parentns)
211 local nsid = 0; 222 local nsid = 0;