Mercurial > prosody-hg
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) |
