pidgin: c2797e3a: Thomas Gibson-Robinson noticed that the ...

datallah at pidgin.im datallah at pidgin.im
Mon Jan 19 23:11:03 EST 2009


-----------------------------------------------------------------
Revision: c2797e3aebf59d6216bf8bf5546e6828d238cdde
Ancestor: 8fc7d302c16b2d4243e18776bc7d72f3bba58f90
Author: datallah at pidgin.im
Date: 2009-01-20T04:08:00
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/c2797e3aebf59d6216bf8bf5546e6828d238cdde

Modified files:
        ChangeLog.API libpurple/account.c libpurple/status.c
        libpurple/status.h

ChangeLog: 

Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
didn't actually do anything (and consequently "non-saveable" status types were
being saved).  A side effect of fixing this is that we have to change the 
behavior of purple_status_type_new() to default "saveable" to TRUE in order to
maintain the current behavior.
Fixes #8162

-------------- next part --------------
============================================================
--- ChangeLog.API	f32042f2d1ed5c66ca249717c6d64679ada18537
+++ ChangeLog.API	49cd1ef7e59da431e4b50328d9b83fa0e50b9b91
@@ -1,5 +1,12 @@ Pidgin and Finch: The Pimpin' Penguin IM
 Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
 
+version 2.5.5 (??/??/2009):
+	libpurple:
+		Changed:
+		* purple_status_type_new now defaults "saveable" to TRUE.
+		  This was necessary in order to maintain the current behavior
+		  while fixing non-saveable statuses not to be saved.
+
 version 2.5.4 (01/12/2009):
 	perl:
 		Changed:
============================================================
--- libpurple/account.c	2d7a963bb5083959e2898e9ad47a372d6c125309
+++ libpurple/account.c	2efbfab11f11992999885a410a954ada99b00888
@@ -257,15 +257,20 @@ statuses_to_xmlnode(const PurplePresence
 statuses_to_xmlnode(const PurplePresence *presence)
 {
 	xmlnode *node, *child;
-	GList *statuses, *status;
+	GList *statuses;
+	PurpleStatus *status;
 
 	node = xmlnode_new("statuses");
 
 	statuses = purple_presence_get_statuses(presence);
-	for (status = statuses; status != NULL; status = status->next)
+	for (; statuses != NULL; statuses = statuses->next)
 	{
-		child = status_to_xmlnode((PurpleStatus *)status->data);
-		xmlnode_insert_child(node, child);
+		status = statuses->data;
+		if (purple_status_type_is_saveable(purple_status_get_type(status)))
+		{
+			child = status_to_xmlnode(status);
+			xmlnode_insert_child(node, child);
+		}
 	}
 
 	return node;
============================================================
--- libpurple/status.c	2ee76141aed0a328a1438ed67a818bda7a350ffb
+++ libpurple/status.c	746d386f0f990633b7f11078989b45602d84f4bb
@@ -250,7 +250,7 @@ purple_status_type_new(PurpleStatusPrimi
 {
 	g_return_val_if_fail(primitive != PURPLE_STATUS_UNSET, NULL);
 
-	return purple_status_type_new_full(primitive, id, name, FALSE,
+	return purple_status_type_new_full(primitive, id, name, TRUE,
 			user_settable, FALSE);
 }
 
============================================================
--- libpurple/status.h	bf743bb2f9ff270ecc5bec8053fbba7aa39316fb
+++ libpurple/status.h	476cf20741bc5c15828b494d5e76e77db6a39572
@@ -199,8 +199,8 @@ PurpleStatusType *purple_status_type_new
 										  gboolean independent);
 
 /**
- * Creates a new status type with some default values (not
- * savable and not independent).
+ * Creates a new status type with some default values (
+ * saveable and not independent).
  *
  * @param primitive     The primitive status type.
  * @param id            The ID of the status type, or @c NULL to use the id of


More information about the Commits mailing list