Comparison

util/stanza.lua @ 6501:71b6e8b48a12

Merge 0.9->0.10
author Kim Alvefur <zash@zash.se>
date Sun, 26 Oct 2014 20:57:06 +0100
parent 6468:3728c30da4e3
parent 6499:9030b056bd4a
child 6777:5de6b93d0190
comparison
equal deleted inserted replaced
6495:44df423f8290 6501:71b6e8b48a12
200 end 200 end
201 201
202 202
203 local xml_escape 203 local xml_escape
204 do 204 do
205 local escape_table = { 205 local escape_table = { ["'"] = "&apos;", ["\""] = "&quot;", ["<"] = "&lt;", [">"] = "&gt;", ["&"] = "&amp;" };
206 ["'"] = "&apos;"; 206 function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end
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
218 _M.xml_escape = xml_escape; 207 _M.xml_escape = xml_escape;
219 end 208 end
220 209
221 local function _dostring(t, buf, self, xml_escape, parentns) 210 local function _dostring(t, buf, self, xml_escape, parentns)
222 local nsid = 0; 211 local nsid = 0;