Changes in protocols/nogaim.c [9076a1c:098a75b]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/nogaim.c
r9076a1c r098a75b 132 132 extern void twitter_initmodule(); 133 133 extern void purple_initmodule(); 134 extern void rpc_initmodule();135 134 136 135 #ifdef WITH_MSN … … 156 155 #ifdef WITH_PURPLE 157 156 purple_initmodule(); 158 #endif159 160 #ifdef WITH_RPC161 rpc_initmodule();162 157 #endif 163 158 … … 312 307 } 313 308 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) { 317 310 GHashTableIter nicks; 318 gpointer handle;311 gpointer k, v; 319 312 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); 322 315 } 323 316 } … … 414 407 query_del_by_conn((irc_t *) ic->bee->ui_data, ic); 415 408 416 /* Throw away groupchats owned by this account. Historically this was only417 ever done by IM modules which is a bug. But it gives them opportunity418 to clean up protocol-specific bits as well so keep it that way, just419 do another cleanup here as a fallback. Don't want to leave any dangling420 pointers! */421 while (ic->groupchats) {422 imcb_chat_free(ic->groupchats->data);423 }424 425 409 if (!a) { 426 410 /* Uhm... This is very sick. */ … … 508 492 } 509 493 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 it512 like a GSList<const char*> I guess? Empty list means NULL retval (as513 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 list521 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 it532 anymore in imcb_connected(). */533 ic->flags |= OPT_LOCAL_CONTACTS_SENT;534 535 return ret;536 }537 538 494 539 495 struct imcb_ask_cb_data { … … 594 550 struct imcb_ask_cb_data *cbd = data; 595 551 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); 599 553 600 554 imcb_ask_cb_free(data);
Note: See TracChangeset
for help on using the changeset viewer.