# HG changeset patch
# Node ID 4802b3965b05
# Parent  fd158ec55359
diff --git a/ChangeLog.API b/ChangeLog.API
--- a/ChangeLog.API
+++ b/ChangeLog.API
@@ -257,8 +257,9 @@ version 3.0.0 (??/??/????):
 		* PurpleStatus is now a GObject. Please see the documentation for
 		  details.
 		* purple_status_attr_* functions are now purple_status_attribute_*
-		* purple_status_set_active_with_attrs_list renamed to
-		  purple_status_set_active_with_attrs_dict
+		* purple_status_set_active_with_attrs renamed to
+		  purple_status_set_active_with_attributes and now takes a
+		  GHashTable
 		* PurpleStatusAttr renamed to PurpleStatusAttribute
 		* PurplePresence is now an abstract type, and is a GObject. Please see
 		  the documentation for details.
@@ -720,6 +721,7 @@ version 3.0.0 (??/??/????):
 		* purple_ssl_strerror
 		* purple_ssl_uninit
 		* purple_ssl_write
+		* purple_status_set_active_with_attrs_list
 		* purple_status_set_attr_boolean
 		* purple_status_set_attr_int
 		* purple_status_set_attr_string
diff --git a/libpurple/account.c b/libpurple/account.c
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -1487,8 +1487,9 @@ purple_account_set_status_attrs(PurpleAc
 		return;
 	}
 
-	if (active || purple_status_is_independent(status))
-		purple_status_set_active_with_attrs_dict(status, active, attrs);
+	if (active || purple_status_is_independent(status)) {
+		purple_status_set_active_with_attibutes(status, active, attrs);
+	}
 
 	/*
 	 * Our current statuses are saved to accounts.xml (so that when we
diff --git a/libpurple/protocols.c b/libpurple/protocols.c
--- a/libpurple/protocols.c
+++ b/libpurple/protocols.c
@@ -116,7 +116,7 @@ purple_protocol_got_account_status_with_
 
 	g_return_if_fail(status != NULL);
 
-	purple_status_set_active_with_attrs_dict(status, TRUE, attributes);
+	purple_status_set_active_with_attributes(status, TRUE, attributes);
 }
 
 void
@@ -234,7 +234,7 @@ purple_protocol_got_user_status_with_att
 
 		old_status = purple_presence_get_active_status(presence);
 
-		purple_status_set_active_with_attrs_dict(status, TRUE, attributes);
+		purple_status_set_active_with_attributes(status, TRUE, attributes);
 
 		purple_buddy_update_status(buddy, old_status);
 	}
diff --git a/libpurple/status.h b/libpurple/status.h
--- a/libpurple/status.h
+++ b/libpurple/status.h
@@ -613,29 +613,13 @@ PurpleStatus *purple_status_new(PurpleSt
 void purple_status_set_active(PurpleStatus *status, gboolean active);
 
 /**
- * purple_status_set_active_with_attrs:
+ * purple_status_set_active_with_attributes:
  * @status: The status.
  * @active: The active state.
- * @args:   A list of attributes to set on the status.  This list is
- *               composed of key/value pairs, where each key is a valid
- *               attribute name for this PurpleStatusType.  The list should
- *               be NULL terminated.
- *
- * Sets whether or not a status is active.
- *
- * This should only be called by the account, conversation, and buddy APIs.
- */
-void purple_status_set_active_with_attrs(PurpleStatus *status, gboolean active,
-									   va_list args);
-
-/**
- * purple_status_set_active_with_attrs_dict: (rename-to purple_status_set_active_with_attrs)
- * @status: The status.
- * @active: The active state.
- * @attrs: (element-type utf8 gpointer): A hash table of attributes to set on
- *         the status.  This hash table's keys are valid attribute names for
- *         this PurpleStatusType.  The hash table is not modified or freed by
- *         this function.
+ * @attrs: (nullable) (element-type utf8 gpointer): A hash table of attributes
+ *         to set on the status. This hash table's keys are valid attribute
+ *         names for this PurpleStatusType. The hash table is not modified or
+ *         freed by this function.
  *
  * Sets whether or not a status is active.
  *
@@ -643,7 +627,7 @@ void purple_status_set_active_with_attrs
  *
  * Since: 3.0.0
  */
-void purple_status_set_active_with_attrs_dict(PurpleStatus *status, gboolean active, GHashTable *attrs);
+void purple_status_set_active_with_attributes(PurpleStatus *status, gboolean active, GHashTable *attrs);
 
 /**
  * purple_status_get_status_type:
diff --git a/libpurple/status.c b/libpurple/status.c
--- a/libpurple/status.c
+++ b/libpurple/status.c
@@ -646,27 +646,12 @@ status_set_attr_string(PurpleStatus *sta
 void
 purple_status_set_active(PurpleStatus *status, gboolean active)
 {
-	purple_status_set_active_with_attrs_dict(status, active, NULL);
-}
-
-/*
- * This used to parse the va_list directly, but now it creates a GList
- * and passes it to purple_status_set_active_with_attrs_list().  That
- * function was created because account.c needs to pass a GList of
- * attributes to the status API.
- */
-void
-purple_status_set_active_with_attrs(PurpleStatus *status, gboolean active, va_list args)
-{
-	GHashTable *attrs = purple_attrs_from_vargs(args);
-
-	purple_status_set_active_with_attrs_dict(status, active, attrs);
-	g_hash_table_destroy(attrs);
+	purple_status_set_active_with_attributes(status, active, NULL);
 }
 
 void
-purple_status_set_active_with_attrs_dict(PurpleStatus *status, gboolean active,
-									     GHashTable *attrs)
+purple_status_set_active_with_attributes(PurpleStatus *status, gboolean active,
+                                         GHashTable *attrs)
 {
 	gboolean changed = FALSE;
 	GList *l;
