Software /
code /
prosody
Comparison
util/stanza.lua @ 2482:a1570e371258
util.stanza: Trailing whitespace
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 21 Jan 2010 13:22:41 +0000 |
parent | 2264:49580a13f71e |
child | 2526:401ff68413a1 |
comparison
equal
deleted
inserted
replaced
2481:9b407a6acf39 | 2482:a1570e371258 |
---|---|
63 return self; | 63 return self; |
64 end | 64 end |
65 | 65 |
66 function stanza_mt:text(text) | 66 function stanza_mt:text(text) |
67 (self.last_add[#self.last_add] or self):add_direct_child(text); | 67 (self.last_add[#self.last_add] or self):add_direct_child(text); |
68 return self; | 68 return self; |
69 end | 69 end |
70 | 70 |
71 function stanza_mt:up() | 71 function stanza_mt:up() |
72 t_remove(self.last_add); | 72 t_remove(self.last_add); |
73 return self; | 73 return self; |
93 return self; | 93 return self; |
94 end | 94 end |
95 | 95 |
96 function stanza_mt:get_child(name, xmlns) | 96 function stanza_mt:get_child(name, xmlns) |
97 for _, child in ipairs(self.tags) do | 97 for _, child in ipairs(self.tags) do |
98 if (not name or child.name == name) | 98 if (not name or child.name == name) |
99 and ((not xmlns and self.attr.xmlns == child.attr.xmlns) | 99 and ((not xmlns and self.attr.xmlns == child.attr.xmlns) |
100 or child.attr.xmlns == xmlns) then | 100 or child.attr.xmlns == xmlns) then |
101 | 101 |
102 return child; | 102 return child; |
103 end | 103 end |
104 end | 104 end |
105 end | 105 end |
106 | 106 |
107 function stanza_mt:child_with_name(name) | 107 function stanza_mt:child_with_name(name) |
108 for _, child in ipairs(self.tags) do | 108 for _, child in ipairs(self.tags) do |
109 if child.name == name then return child; end | 109 if child.name == name then return child; end |
110 end | 110 end |
111 end | 111 end |
112 | 112 |
113 function stanza_mt:child_with_ns(ns) | 113 function stanza_mt:child_with_ns(ns) |
114 for _, child in ipairs(self.tags) do | 114 for _, child in ipairs(self.tags) do |
115 if child.attr.xmlns == ns then return child; end | 115 if child.attr.xmlns == ns then return child; end |
116 end | 116 end |
117 end | 117 end |
118 | 118 |
119 function stanza_mt:children() | 119 function stanza_mt:children() |
121 return function (a) | 121 return function (a) |
122 i = i + 1 | 122 i = i + 1 |
123 local v = a[i] | 123 local v = a[i] |
124 if v then return v; end | 124 if v then return v; end |
125 end, self, i; | 125 end, self, i; |
126 | |
127 end | 126 end |
128 function stanza_mt:childtags() | 127 function stanza_mt:childtags() |
129 local i = 0; | 128 local i = 0; |
130 return function (a) | 129 return function (a) |
131 i = i + 1 | 130 i = i + 1 |
132 local v = self.tags[i] | 131 local v = self.tags[i] |
133 if v then return v; end | 132 if v then return v; end |
134 end, self.tags[1], i; | 133 end, self.tags[1], i; |
135 | |
136 end | 134 end |
137 | 135 |
138 local xml_escape | 136 local xml_escape |
139 do | 137 do |
140 local escape_table = { ["'"] = "'", ["\""] = """, ["<"] = "<", [">"] = ">", ["&"] = "&" }; | 138 local escape_table = { ["'"] = "'", ["\""] = """, ["<"] = "<", [">"] = ">", ["&"] = "&" }; |
315 --local tag_format = getstring(style_punc, "<")..getstring(style_tagname, "%s").."%s"..getstring(style_punc, ">").."%s"..getstring(style_punc, "</")..getstring(style_tagname, "%s")..getstring(style_punc, ">"); | 313 --local tag_format = getstring(style_punc, "<")..getstring(style_tagname, "%s").."%s"..getstring(style_punc, ">").."%s"..getstring(style_punc, "</")..getstring(style_tagname, "%s")..getstring(style_punc, ">"); |
316 local tag_format = top_tag_format.."%s"..getstring(style_punc, "</")..getstring(style_tagname, "%s")..getstring(style_punc, ">"); | 314 local tag_format = top_tag_format.."%s"..getstring(style_punc, "</")..getstring(style_tagname, "%s")..getstring(style_punc, ">"); |
317 function stanza_mt.pretty_print(t) | 315 function stanza_mt.pretty_print(t) |
318 local children_text = ""; | 316 local children_text = ""; |
319 for n, child in ipairs(t) do | 317 for n, child in ipairs(t) do |
320 if type(child) == "string" then | 318 if type(child) == "string" then |
321 children_text = children_text .. xml_escape(child); | 319 children_text = children_text .. xml_escape(child); |
322 else | 320 else |
323 children_text = children_text .. child:pretty_print(); | 321 children_text = children_text .. child:pretty_print(); |
324 end | 322 end |
325 end | 323 end |