--- 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