pidgin/pidgin

Parents 965caf7eb32e
Children 7391a9c98a1d
Implement purple_chat_conversation_get_users_count and use it instead of counting the list
--- a/libpurple/conversationtypes.c Tue Mar 18 12:20:55 2014 +0100
+++ b/libpurple/conversationtypes.c Tue Mar 18 13:11:04 2014 +0100
@@ -620,6 +620,16 @@
return priv->in_room;
}
+guint
+purple_chat_conversation_get_users_count(const PurpleChatConversation *chat)
+{
+ PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat);
+
+ g_return_val_if_fail(priv != NULL, 0);
+
+ return g_hash_table_size(priv->users);
+}
+
void
purple_chat_conversation_ignore(PurpleChatConversation *chat, const char *name)
{
--- a/libpurple/conversationtypes.h Tue Mar 18 12:20:55 2014 +0100
+++ b/libpurple/conversationtypes.h Tue Mar 18 13:11:04 2014 +0100
@@ -385,6 +385,17 @@
GList *purple_chat_conversation_get_users(const PurpleChatConversation *chat);
/**
+ * purple_chat_conversation_get_users_count:
+ * @chat: The chat.
+ *
+ * Returns count of users in the chat room.
+ *
+ * Returns: The count of users in the chat room.
+ */
+guint
+purple_chat_conversation_get_users_count(const PurpleChatConversation *chat);
+
+/**
* purple_chat_conversation_ignore:
* @chat: The chat.
* @name: The name of the user.
--- a/libpurple/plugins/joinpart.c Tue Mar 18 12:20:55 2014 +0100
+++ b/libpurple/plugins/joinpart.c Tue Mar 18 13:11:04 2014 +0100
@@ -90,7 +90,7 @@
/* If the room is small, don't bother. */
chat = PURPLE_CHAT_CONVERSATION(conv);
threshold = purple_prefs_get_int(THRESHOLD_PREF);
- if (g_list_length(purple_chat_conversation_get_users(chat)) < threshold)
+ if (purple_chat_conversation_get_users_count(chat) < threshold)
return FALSE;
if (!purple_prefs_get_bool(HIDE_BUDDIES_PREF) &&
--- a/pidgin/gtkblist.c Tue Mar 18 12:20:55 2014 +0100
+++ b/pidgin/gtkblist.c Tue Mar 18 13:11:04 2014 +0100
@@ -3841,7 +3841,7 @@
if (conv && !purple_chat_conversation_has_left(conv)) {
g_string_append_printf(str, _("\n<b>Occupants:</b> %d"),
- g_list_length(purple_chat_conversation_get_users(conv)));
+ purple_chat_conversation_get_users_count(conv));
if (prpl_info && (prpl_info->options & OPT_PROTO_CHAT_TOPIC)) {
const char *chattopic = purple_chat_conversation_get_topic(conv);
--- a/pidgin/gtkconv.c Tue Mar 18 12:20:55 2014 +0100
+++ b/pidgin/gtkconv.c Tue Mar 18 13:11:04 2014 +0100
@@ -7028,7 +7028,7 @@
gtkconv = PIDGIN_CONVERSATION(PURPLE_CONVERSATION(chat));
gtkchat = gtkconv->u.chat;
- num_users = g_list_length(purple_chat_conversation_get_users(chat));
+ num_users = purple_chat_conversation_get_users_count(chat);
g_snprintf(tmp, sizeof(tmp),
ngettext("%d person in room", "%d people in room",
@@ -7114,7 +7114,7 @@
gtkconv = PIDGIN_CONVERSATION(PURPLE_CONVERSATION(chat));
gtkchat = gtkconv->u.chat;
- num_users = g_list_length(purple_chat_conversation_get_users(chat));
+ num_users = purple_chat_conversation_get_users_count(chat);
for (l = users; l != NULL; l = l->next) {
model = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list));