const char * purple_buddy_icon_get_extension(const PurpleBuddyIcon *icon) { if (icon->img != NULL) return purple_imgstore_get_extension(icon->img); return NULL; }
const char * purple_smiley_get_extension(const PurpleSmiley *smiley) { if (smiley->img != NULL) return purple_imgstore_get_extension(smiley->img); return NULL; }
const char * purple_smiley_get_extension(const PurpleSmiley *smiley) { PurpleSmileyPrivate *priv = PURPLE_SMILEY_GET_PRIVATE(smiley); if (priv->img != NULL) return purple_imgstore_get_extension(priv->img); return NULL; }
void silcpurple_buddy_set_icon(PurpleConnection *gc, PurpleStoredImage *img) { SilcPurple sg = gc->proto_data; SilcClient client = sg->client; SilcClientConnection conn = sg->conn; SilcMime mime; char type[32]; unsigned char *icon; const char *t; SilcAttributeObjMime obj; /* Remove */ if (!img) { silc_client_attribute_del(client, conn, SILC_ATTRIBUTE_USER_ICON, NULL); return; } /* Add */ mime = silc_mime_alloc(); if (!mime) return; t = purple_imgstore_get_extension(img); if (!t || purple_strequal(t, "icon")) { silc_mime_free(mime); return; } if (purple_strequal(t, "jpg")) t = "jpeg"; g_snprintf(type, sizeof(type), "image/%s", t); silc_mime_add_field(mime, "Content-Type", type); silc_mime_add_data(mime, purple_imgstore_get_data(img), purple_imgstore_get_size(img)); obj.mime = icon = silc_mime_encode(mime, &obj.mime_len); if (obj.mime) silc_client_attribute_add(client, conn, SILC_ATTRIBUTE_USER_ICON, &obj, sizeof(obj)); silc_free(icon); silc_mime_free(mime); }