Mercurial > pidgin.yaz
diff libpurple/protocols/yahoo/yahoo.c @ 16483:5e47b3427b28
propagate from branch 'im.pidgin.rlaager.gaim_migration' (head dcc40d46afbe3f87cc674e4fb1526ac722bc35cb)
to branch 'im.pidgin.pidgin' (head 0ef5b6c44115778e329fd628324124f872f5253b)
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Fri, 27 Apr 2007 02:14:44 +0000 |
parents | 08db93bbd798 4fc51a87ce42 |
children | 915a56e08a9d 0b49b01e9482 |
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/yahoo.c Fri Apr 27 00:28:21 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Fri Apr 27 02:14:44 2007 +0000 @@ -342,6 +342,8 @@ } case 192: /* Pictures, aka Buddy Icons, checksum */ { + /* FIXME: Please, if you know this protocol, + * FIXME: fix up the strtol() stuff if possible. */ int cksum = strtol(pair->value, NULL, 10); PurpleBuddy *b; @@ -353,9 +355,7 @@ if (!cksum || (cksum == -1)) { if (f) yahoo_friend_set_buddy_icon_need_request(f, TRUE); - purple_buddy_icons_set_for_user(gc->account, name, NULL, 0); - if (b) - purple_blist_node_remove_setting((PurpleBlistNode *)b, YAHOO_ICON_CHECKSUM_KEY); + purple_buddy_icons_set_for_user(gc->account, name, NULL, 0, NULL); break; } @@ -363,7 +363,7 @@ break; yahoo_friend_set_buddy_icon_need_request(f, FALSE); - if (b && cksum != purple_blist_node_get_int((PurpleBlistNode*)b, YAHOO_ICON_CHECKSUM_KEY)) + if (b && cksum != strtol(purple_buddy_icons_get_checksum_for_user(b), NULL, 10)) yahoo_send_picture_request(gc, name); break; @@ -2686,11 +2686,10 @@ static void yahoo_picture_check(PurpleAccount *account) { PurpleConnection *gc = purple_account_get_connection(account); - char *buddyicon; - - buddyicon = purple_buddy_icons_get_full_path(purple_account_get_buddy_icon(account)); - yahoo_set_buddy_icon(gc, buddyicon); - g_free(buddyicon); + PurpleStoredImage *img = purple_buddy_icons_find_account_icon(account); + + yahoo_set_buddy_icon(gc, img); + purple_imgstore_unref(img); } static int get_yahoo_status_from_purple_status(PurpleStatus *status)