diff util/stanza.lua @ 13569:59dacbd637c2

util.stanza: Handle Clark notation for attributes in :find()
author Kim Alvefur <zash@zash.se>
date Sun, 17 Nov 2024 13:40:20 +0100
parents 3615590fd9ed
children 9991b6bd98ef
line wrap: on
line diff
--- a/util/stanza.lua	Sun Nov 17 12:35:51 2024 +0100
+++ b/util/stanza.lua	Sun Nov 17 13:40:20 2024 +0100
@@ -277,6 +277,9 @@
 		local xmlns, name, text;
 		local char = s_sub(path, pos, pos);
 		if char == "@" then
+			if s_sub(path, pos + 1, pos + 1) == "{" then
+				return self.attr[s_gsub(s_sub(path, pos+2), "}", "\1", 1)];
+			end
 			local prefix, attr = s_match(path, "^([^:]+):(.*)", pos+1);
 			if prefix and self.namespaces and self.namespaces[prefix] then
 				return self.attr[self.namespaces[prefix] .. "\1" .. attr];