Mercurial > pidgin
diff libpurple/protocols/yahoo/libymsg.c @ 27538:fa827f6f990f
Add support for receiving contact details from buddies.
Also, show some contact details (e.g. phone number) in the tooltip and in
'Get Info' when available.
| author | Sadrul Habib Chowdhury <imadil@gmail.com> |
|---|---|
| date | Tue, 14 Jul 2009 21:08:56 +0000 |
| parents | a12574d982a1 |
| children | b909c4a7bfc8 |
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/libymsg.c Tue Jul 14 19:55:40 2009 +0000 +++ b/libpurple/protocols/yahoo/libymsg.c Tue Jul 14 21:08:56 2009 +0000 @@ -2898,6 +2898,9 @@ case YAHOO_SERVICE_AUDIBLE: yahoo_process_audible(gc, pkt); break; + case YAHOO_SERVICE_CONTACT_DETAILS: + yahoo_process_contact_details(gc, pkt); + break; case YAHOO_SERVICE_FILETRANS_15: yahoo_process_filetrans_15(gc, pkt); break; @@ -3539,7 +3542,7 @@ g_free(yd->pending_chat_goto); g_strfreev(yd->profiles); - yahoo_personal_details_reset(&yd->ypd); + yahoo_personal_details_reset(&yd->ypd, TRUE); g_free(yd->current_list15_grp); @@ -3772,6 +3775,26 @@ if (presence != NULL) purple_notify_user_info_add_pair(user_info, _("Presence"), presence); + + if (full) { + YahooPersonalDetails *ypd = &f->ypd; + int i; + struct { + char *id; + char *text; + char *value; + } yfields[] = { + {"hp", N_("Home Phone Number"), ypd->phone.home}, + {"wp", N_("Work Phone Number"), ypd->phone.work}, + {"mo", N_("Mobile Phone Number"), ypd->phone.mobile}, + {NULL, NULL, NULL} + }; + for (i = 0; yfields[i].id; i++) { + if (!yfields[i].value || !*yfields[i].value) + continue; + purple_notify_user_info_add_pair(user_info, _(yfields[i].text), yfields[i].value); + } + } } static void yahoo_addbuddyfrommenu_cb(PurpleBlistNode *node, gpointer data)
