libpurple/plugins/perl/common/XMLNode.xs

changeset 28393
1f319c8ff5cb
parent 28224
315ba0216ae0
child 34935
686fa55b0deb
--- a/libpurple/plugins/perl/common/XMLNode.xs	Sat Aug 29 02:32:16 2009 +0000
+++ b/libpurple/plugins/perl/common/XMLNode.xs	Sat Aug 29 02:36:27 2009 +0000
@@ -32,6 +32,18 @@
 xmlnode_get_child(parent, name)
 	Purple::XMLNode parent
 	const char *name
+PREINIT:
+	xmlnode *tmp;
+CODE:
+	if (!name || *name == '\0') {
+		tmp = parent->child;
+		while (tmp && tmp->type != XMLNODE_TYPE_TAG)
+			tmp = tmp->next;
+		RETVAL = tmp;
+	} else
+		RETVAL = xmlnode_get_child(parent, name);
+OUTPUT:
+	RETVAL
 
 Purple::XMLNode
 xmlnode_get_child_with_namespace(parent, name, xmlns)
@@ -44,6 +56,19 @@
 	Purple::XMLNode node
 
 Purple::XMLNode
+xmlnode_get_next(node)
+	Purple::XMLNode node
+PREINIT:
+	xmlnode *tmp;
+CODE:
+	tmp = node->next;
+	while (tmp && tmp->type != XMLNODE_TYPE_TAG)
+		tmp = tmp->next;
+	RETVAL = tmp;
+OUTPUT:
+	RETVAL
+
+Purple::XMLNode
 xmlnode_get_next_twin(node)
 	Purple::XMLNode node
 

mercurial