comparison util/stanza.lua @ 403:da92afa267cf

Merging with main branch.
author Tobias Markmann <tm@ayena.de>
date Sun, 23 Nov 2008 20:44:48 +0100
parents dd0345edeaf4
children cccd610a0ef9
comparison
equal deleted inserted replaced
402:50f1c09541cd 403:da92afa267cf
28 end 28 end
29 29
30 function stanza_mt:query(xmlns) 30 function stanza_mt:query(xmlns)
31 return self:tag("query", { xmlns = xmlns }); 31 return self:tag("query", { xmlns = xmlns });
32 end 32 end
33
34 function stanza_mt:body(text, attr)
35 return self:tag("body", attr):text(text);
36 end
37
33 function stanza_mt:tag(name, attrs) 38 function stanza_mt:tag(name, attrs)
34 local s = stanza(name, attrs); 39 local s = stanza(name, attrs);
35 (self.last_add[#self.last_add] or self):add_direct_child(s); 40 (self.last_add[#self.last_add] or self):add_direct_child(s);
36 t_insert(self.last_add, s); 41 t_insert(self.last_add, s);
37 return self; 42 return self;
101 end 106 end
102 end 107 end
103 108
104 local attr_string = ""; 109 local attr_string = "";
105 if t.attr then 110 if t.attr then
106 for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, tostring(v)); end end 111 for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, xml_escape(tostring(v))); end end
107 end 112 end
108 return s_format("<%s%s>%s</%s>", t.name, attr_string, children_text, t.name); 113 return s_format("<%s%s>%s</%s>", t.name, attr_string, children_text, t.name);
109 end 114 end
110 115
111 function stanza_mt.top_tag(t) 116 function stanza_mt.top_tag(t)
112 local attr_string = ""; 117 local attr_string = "";
113 if t.attr then 118 if t.attr then
114 for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, tostring(v)); end end 119 for k, v in pairs(t.attr) do if type(k) == "string" then attr_string = attr_string .. s_format(" %s='%s'", k, xml_escape(tostring(v))); end end
115 end 120 end
116 return s_format("<%s%s>", t.name, attr_string); 121 return s_format("<%s%s>", t.name, attr_string);
117 end 122 end
118 123
119 function stanza_mt.__add(s1, s2) 124 function stanza_mt.__add(s1, s2)