comparison libpurple/protocols/jabber/google.c @ 27494:93a41017dca9

Various roster cleanups. Refs #7008. I haven't tested it, but this may resolve the grouping/case problem (strcmp => purple_utf8_strcasecmp)
author Paul Aurich <paul@darkrain42.org>
date Sun, 07 Jun 2009 00:16:05 +0000
parents f0621e47ccf3
children 6d26258e9f1d
comparison
equal deleted inserted replaced
27493:65b5bc543214 27494:93a41017dca9
985 } 985 }
986 986
987 gboolean jabber_google_roster_incoming(JabberStream *js, xmlnode *item) 987 gboolean jabber_google_roster_incoming(JabberStream *js, xmlnode *item)
988 { 988 {
989 PurpleAccount *account = purple_connection_get_account(js->gc); 989 PurpleAccount *account = purple_connection_get_account(js->gc);
990 GSList *list = account->deny;
991 const char *jid = xmlnode_get_attrib(item, "jid"); 990 const char *jid = xmlnode_get_attrib(item, "jid");
992 gboolean on_block_list = FALSE; 991 gboolean on_block_list = FALSE;
993 992
994 char *jid_norm; 993 char *jid_norm;
995 994
1003 return FALSE; 1002 return FALSE;
1004 } 1003 }
1005 1004
1006 jid_norm = g_strdup(jabber_normalize(account, jid)); 1005 jid_norm = g_strdup(jabber_normalize(account, jid));
1007 1006
1008 while (list) { 1007 on_block_list = NULL != g_slist_find_custom(account->deny, jid_norm,
1009 if (!strcmp(jid_norm, (char*)list->data)) { 1008 (GCompareFunc)strcmp);
1010 on_block_list = TRUE;
1011 break;
1012 }
1013 list = list->next;
1014 }
1015 1009
1016 if (grt && (*grt == 'H' || *grt == 'h')) { 1010 if (grt && (*grt == 'H' || *grt == 'h')) {
1017 PurpleBuddy *buddy = purple_find_buddy(account, jid_norm); 1011 /* Hidden; don't show this buddy. */
1018 if (buddy) 1012 GSList *buddies = purple_find_buddies(account, jid_norm);
1019 purple_blist_remove_buddy(buddy); 1013 if (buddies)
1014 purple_debug_info("jabber", "Removing %s from local buddy list\n",
1015 jid_norm);
1016
1017 for ( ; buddies; buddies = g_slist_delete_link(buddies, buddies)) {
1018 purple_blist_remove_buddy(buddies->data);
1019 }
1020
1020 g_free(jid_norm); 1021 g_free(jid_norm);
1021 return FALSE; 1022 return FALSE;
1022 } 1023 }
1023 1024
1024 if (!on_block_list && (grt && (*grt == 'B' || *grt == 'b'))) { 1025 if (!on_block_list && (grt && (*grt == 'B' || *grt == 'b'))) {