Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/nogaim.c

    r9076a1c r098a75b  
    132132        extern void twitter_initmodule();
    133133        extern void purple_initmodule();
    134         extern void rpc_initmodule();
    135134
    136135#ifdef WITH_MSN
     
    156155#ifdef WITH_PURPLE
    157156        purple_initmodule();
    158 #endif
    159 
    160 #ifdef WITH_RPC
    161         rpc_initmodule();
    162157#endif
    163158
     
    312307        }
    313308
    314         if ((ic->acc->flags & ACC_FLAG_LOCAL_CONTACTS) &&
    315             !(ic->flags & OPT_LOCAL_CONTACTS_SENT) &&
    316             ic->acc->prpl->add_buddy) {
     309        if (ic->acc->flags & ACC_FLAG_LOCAL) {
    317310                GHashTableIter nicks;
    318                 gpointer handle;
     311                gpointer k, v;
    319312                g_hash_table_iter_init(&nicks, ic->acc->nicks);
    320                 while (g_hash_table_iter_next(&nicks, &handle, NULL)) {
    321                         ic->acc->prpl->add_buddy(ic, (char *) handle, NULL);
     313                while (g_hash_table_iter_next(&nicks, &k, &v)) {
     314                        ic->acc->prpl->add_buddy(ic, (char *) k, NULL);
    322315                }
    323316        }
     
    414407        query_del_by_conn((irc_t *) ic->bee->ui_data, ic);
    415408
    416         /* Throw away groupchats owned by this account. Historically this was only
    417            ever done by IM modules which is a bug. But it gives them opportunity
    418            to clean up protocol-specific bits as well so keep it that way, just
    419            do another cleanup here as a fallback. Don't want to leave any dangling
    420            pointers! */
    421         while (ic->groupchats) {
    422                 imcb_chat_free(ic->groupchats->data);
    423         }
    424 
    425409        if (!a) {
    426410                /* Uhm... This is very sick. */
     
    508492}
    509493
    510 /* Returns the local contacts for an IM account (based on assigned nicks).
    511    Linked list should be freed, the strings themselves not! So look at it
    512    like a GSList<const char*> I guess? Empty list means NULL retval (as
    513    always with GSList). */
    514 GSList *imcb_get_local_contacts(struct im_connection *ic)
    515 {
    516         GHashTableIter nicks;
    517         GSList *ret = NULL;
    518        
    519         if (!(ic->acc->flags & ACC_FLAG_LOCAL_CONTACTS)) {
    520                 /* Only allow protocols that indicate local contact list
    521                    support to use this function. */
    522                 return ret;
    523         }
    524        
    525         g_hash_table_iter_init(&nicks, ic->acc->nicks);
    526         gpointer handle;
    527         while (g_hash_table_iter_next(&nicks, &handle, NULL)) {
    528                 ret = g_slist_prepend(ret, (char *) handle);
    529         }
    530        
    531         /* If the protocol asked for the list, assume we won't have to send it
    532            anymore in imcb_connected(). */
    533         ic->flags |= OPT_LOCAL_CONTACTS_SENT;
    534        
    535         return ret;
    536 }
    537 
    538494
    539495struct imcb_ask_cb_data {
     
    594550        struct imcb_ask_cb_data *cbd = data;
    595551
    596         if (cbd->ic->acc->prpl->add_buddy) {
    597                 cbd->ic->acc->prpl->add_buddy(cbd->ic, cbd->handle, NULL);
    598         }
     552        cbd->ic->acc->prpl->add_buddy(cbd->ic, cbd->handle, NULL);
    599553
    600554        imcb_ask_cb_free(data);
Note: See TracChangeset for help on using the changeset viewer.