X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;ds=inline;f=core%2Fxmlhandlers.lua;fp=core%2Fxmlhandlers.lua;h=d679af973798b605a4b590659ecd3ceab319f038;hb=572c3a8502c3341b6174071aa4f140e158467f68;hp=9ded74c338c2129b3399352ae3577531dd3fc5fa;hpb=4beae1fca3f4f779e450843949376e9a2c983158;p=prosody.git diff --git a/core/xmlhandlers.lua b/core/xmlhandlers.lua index 9ded74c3..d679af97 100644 --- a/core/xmlhandlers.lua +++ b/core/xmlhandlers.lua @@ -29,7 +29,6 @@ local ns_prefixes = { function init_xmlhandlers(session, stream_callbacks) local ns_stack = { "" }; - local curr_ns, name = ""; local curr_tag; local chardata = {}; local xml_handlers = {}; @@ -50,7 +49,7 @@ function init_xmlhandlers(session, stream_callbacks) stanza:text(t_concat(chardata)); chardata = {}; end - local curr_ns,name = tagname:match("^(.-)|?([^%|]-)$"); + local curr_ns,name = tagname:match("^([^\1]*)\1?(.*)$"); if not name then curr_ns, name = "", curr_ns; end @@ -63,7 +62,7 @@ function init_xmlhandlers(session, stream_callbacks) for i=1,#attr do local k = attr[i]; attr[i] = nil; - local ns, nm = k:match("^([^|]+)|?([^|]-)$") + local ns, nm = k:match("^([^\1]*)\1?(.*)$"); if ns and nm then ns = ns_prefixes[ns]; if ns then @@ -105,7 +104,7 @@ function init_xmlhandlers(session, stream_callbacks) end end function xml_handlers:EndElement(tagname) - curr_ns,name = tagname:match("^(.-)|?([^%|]-)$"); + local curr_ns,name = tagname:match("^([^\1]*)\1?(.*)$"); if not name then curr_ns, name = "", curr_ns; end