Software /
code /
prosody
Comparison
util/stanza.lua @ 6499:9030b056bd4a 0.9.7
Backout changeset 6e67c73f730c: not a major fix and it breaks interop with at least Isode M-Link, and possibly standards, while it's not clear it actually fixes the original problem either.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 24 Oct 2014 23:20:06 +0100 |
parent | 6466:6e67c73f730c |
child | 6501:71b6e8b48a12 |
comparison
equal
deleted
inserted
replaced
6498:ce66fe13eebe | 6499:9030b056bd4a |
---|---|
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 = { ["'"] = "'", ["\""] = """, ["<"] = "<", [">"] = ">", ["&"] = "&" }; |
206 ["'"] = "'"; | 206 function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end |
207 ['"'] = """; | |
208 ["<"] = "<"; | |
209 [">"] = ">"; | |
210 ["&"] = "&"; | |
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"] = "	"; | |
214 ["\n"] = "
"; | |
215 ["\r"] = "
"; | |
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; |