# HG changeset patch # User Elliott Sales de Andrade # Date 1250998312 0 # Node ID 36c6601d650af7f7d604d5d68ec6910fe3d170f3 # Parent afe6ce7cc64f3c1e6938b50612b9c21bd42dfa26 It seems I need to write the smiley to the conversation for it to show up locally, because it's not done for chats like in IMs. References #10027. diff -r afe6ce7cc64f -r 36c6601d650a libpurple/protocols/msn/msn.c --- a/libpurple/protocols/msn/msn.c Sun Aug 23 01:58:16 2009 +0000 +++ b/libpurple/protocols/msn/msn.c Sun Aug 23 03:31:52 2009 +0000 @@ -89,6 +89,7 @@ typedef struct { char *smile; + PurpleSmiley *ps; MsnObject *obj; } MsnEmoticon; @@ -1143,6 +1144,7 @@ emoticon = g_new0(MsnEmoticon, 1); emoticon->smile = g_strdup(purple_smiley_get_shortcut(smiley)); + emoticon->ps = smiley; emoticon->obj = msn_object_new_from_image(img, purple_imgstore_get_filename(img), username, MSN_OBJECT_EMOTICON); @@ -1165,7 +1167,7 @@ smileys = msn_msg_grab_emoticons(msg->body, username); while (smileys) { - smile = (MsnEmoticon*)smileys->data; + smile = (MsnEmoticon *)smileys->data; emoticons = msn_msg_emoticon_add(emoticons, smile); msn_emoticon_destroy(smile); smileys = g_slist_delete_link(smileys, smileys); @@ -1757,6 +1759,15 @@ while (smileys) { smile = (MsnEmoticon *)smileys->data; emoticons = msn_msg_emoticon_add(emoticons, smile); + if (purple_conv_custom_smiley_add(swboard->conv, smile->smile, + "sha1", purple_smiley_get_checksum(smile->ps), + FALSE)) { + gconstpointer data; + size_t len; + data = purple_smiley_get_data(smile->ps, &len); + purple_conv_custom_smiley_write(swboard->conv, smile->smile, data, len); + purple_conv_custom_smiley_close(swboard->conv, smile->smile); + } msn_emoticon_destroy(smile); smileys = g_slist_delete_link(smileys, smileys); }