# HG changeset patch # User Waqas Hussain # Date 1412808153 14400 # Node ID 3728c30da4e3543411b60c578527536fb0d0a364 # Parent 737c81bd898ee6bd94b30e323208c4b42420d831# Parent 77d00a895bbd2e3a4ae90bcaf9e18208e3b806f6 Merge 0.9->0.10 diff -r 737c81bd898e -r 3728c30da4e3 util/dataforms.lua --- a/util/dataforms.lua Sun Oct 05 15:37:21 2014 +0200 +++ b/util/dataforms.lua Wed Oct 08 18:42:33 2014 -0400 @@ -121,7 +121,7 @@ for _, field in ipairs(layout) do local tag; - for field_tag in stanza:childtags() do + for field_tag in stanza:childtags("field") do if field.name == field_tag.attr.var then tag = field_tag; break; diff -r 737c81bd898e -r 3728c30da4e3 util/stanza.lua --- 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