merge of '32da7ab6d1092d199f3c54e43644fb6303f82bd2'

Sat, 29 Aug 2009 02:36:57 +0000

author
Paul Aurich <darkrain42@pidgin.im>
date
Sat, 29 Aug 2009 02:36:57 +0000
changeset 28413
cf759315bdac
parent 28412
32da7ab6d109 (current diff)
parent 28393
1f319c8ff5cb (diff)
child 28414
5093c1a49d5c

merge of '32da7ab6d1092d199f3c54e43644fb6303f82bd2'
and '1f319c8ff5cb02d04292afee3096cc37e0521670'

--- a/ChangeLog.API	Fri Aug 28 23:27:10 2009 +0000
+++ b/ChangeLog.API	Sat Aug 29 02:36:57 2009 +0000
@@ -1,5 +1,14 @@
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
+version 2.6.2 (09/??/2009):
+	Perl:
+		Added:
+		* Purple::XMLNode::get_next(), which returns the next neighbor tag of
+		  the current node.
+		Changed:
+		* Purple::XMLNode::get_child() will return the first child node if
+		  passed "" or undef as the name of the node.
+
 version 2.6.1 (08/18/2009):
 	No changes
 
--- a/libpurple/account.c	Fri Aug 28 23:27:10 2009 +0000
+++ b/libpurple/account.c	Sat Aug 29 02:36:57 2009 +0000
@@ -2290,9 +2290,13 @@
 purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy)
 {
 	PurplePluginProtocolInfo *prpl_info = NULL;
-	PurpleConnection *gc = purple_account_get_connection(account);
+	PurpleConnection *gc;
 	PurplePlugin *prpl = NULL;
 
+	g_return_if_fail(account != NULL);
+	g_return_if_fail(buddy != NULL);
+
+	gc = purple_account_get_connection(account);
 	if (gc != NULL)
 	        prpl = purple_connection_get_prpl(gc);
 
--- a/libpurple/plugins/perl/common/XMLNode.xs	Fri Aug 28 23:27:10 2009 +0000
+++ b/libpurple/plugins/perl/common/XMLNode.xs	Sat Aug 29 02:36:57 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
 
--- a/pidgin/plugins/gevolution/gevo-util.c	Fri Aug 28 23:27:10 2009 +0000
+++ b/pidgin/plugins/gevolution/gevo-util.c	Sat Aug 29 02:36:57 2009 +0000
@@ -35,14 +35,16 @@
 
 	conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, buddy_name, account);
 
-	if ((group = purple_find_group(group_name)) == NULL)
+	group = purple_find_group(group_name);
+	if (group == NULL)
 	{
 		group = purple_group_new(group_name);
 		purple_blist_add_group(group, NULL);
 	}
 
-	if ((buddy = purple_find_buddy_in_group(account, buddy_name, group)))
-	{	
+	buddy = purple_find_buddy_in_group(account, buddy_name, group);
+	if (buddy == NULL)
+	{
 		buddy = purple_buddy_new(account, buddy_name, alias);
 		purple_blist_add_buddy(buddy, NULL, group, NULL);
 	}

mercurial