libpurple/protocols/jabber/message.c

branch
soc.2013.gobjectification.plugins
changeset 37134
07746c9a04bf
parent 37133
832cd077145e
parent 35823
268a9d3b3fd7
child 37135
6271bcdee576
--- a/libpurple/protocols/jabber/message.c	Mon Apr 07 20:02:22 2014 +0530
+++ b/libpurple/protocols/jabber/message.c	Fri Apr 11 16:23:12 2014 +0530
@@ -833,22 +833,6 @@
 	jabber_message_free(jm);
 }
 
-static const gchar *
-jabber_message_get_mimetype_from_ext(const gchar *ext)
-{
-	if (strcmp(ext, "png") == 0) {
-		return "image/png";
-	} else if (strcmp(ext, "gif") == 0) {
-		return "image/gif";
-	} else if (strcmp(ext, "jpg") == 0) {
-		return "image/jpeg";
-	} else if (strcmp(ext, "tif") == 0) {
-		return "image/tif";
-	} else {
-		return "image/x-icon"; /* or something... */
-	}
-}
-
 static gboolean
 jabber_conv_support_custom_smileys(JabberStream *js,
 								   PurpleConversation *conv,
@@ -920,14 +904,14 @@
 	if (!jabber_conv_support_custom_smileys(jm->js, conv, jm->to))
 		return NULL;
 
-	found_smileys = purple_smiley_find(purple_smiley_custom_get_list(),
-		xhtml, TRUE);
+	found_smileys = purple_smiley_parser_find(
+		purple_smiley_custom_get_list(), xhtml, TRUE);
 	if (!found_smileys)
 		return NULL;
 
 	for (it = found_smileys; it; it = it_next) {
 		PurpleSmiley *smiley = it->data;
-		PurpleStoredImage *smiley_image;
+		PurpleImage *smiley_image;
 		gboolean valid = TRUE;
 
 		it_next = g_list_next(it);
@@ -937,7 +921,7 @@
 			valid = FALSE;
 			purple_debug_warning("jabber", "broken smiley %s",
 				purple_smiley_get_shortcut(smiley));
-		} else if (purple_imgstore_get_size(smiley_image) >
+		} else if (purple_image_get_size(smiley_image) >
 			JABBER_DATA_MAX_SIZE)
 		{
 			has_too_large_smiley = TRUE;
@@ -963,7 +947,7 @@
 
 	for (it = found_smileys; it; it = g_list_next(it)) {
 		PurpleSmiley *smiley = it->data;
-		PurpleStoredImage *smiley_image;
+		PurpleImage *smiley_image;
 		const gchar *shortcut = purple_smiley_get_shortcut(smiley);
 		const gchar *mimetype;
 		JabberData *jdata;
@@ -975,12 +959,16 @@
 		smiley_image = purple_smiley_get_image(smiley);
 		g_assert(smiley_image != NULL);
 
-		mimetype = jabber_message_get_mimetype_from_ext(
-			purple_imgstore_get_extension(smiley_image));
+		mimetype = purple_image_get_mimetype(smiley_image);
+		if (!mimetype) {
+			purple_debug_error("jabber",
+				"unknown mime type for image");
+			continue;
+		}
 
 		jdata = jabber_data_create_from_data(
-			purple_imgstore_get_data(smiley_image),
-			purple_imgstore_get_size(smiley_image),
+			purple_image_get_data(smiley_image),
+			purple_image_get_size(smiley_image),
 			mimetype, FALSE, jm->js);
 
 		purple_debug_info("jabber", "cache local smiley alt=%s, cid=%s",
@@ -990,7 +978,8 @@
 
 	g_list_free(found_smileys);
 
-	smileyfied_xhtml = purple_smiley_parse_custom(xhtml,
+	smileyfied_xhtml = purple_smiley_parser_replace(
+		purple_smiley_custom_get_list(), xhtml,
 		jabber_message_smileyify_cb, NULL);
 
 	return smileyfied_xhtml;

mercurial