diff icon.c @ 272:2f053c23ee50

a better way to get an extension for icon image.
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 12 Dec 2008 21:36:38 +0900
parents d3e2b2e58828
children add1e454b87f
line wrap: on
line diff
--- a/icon.c	Fri Dec 12 20:23:24 2008 +0900
+++ b/icon.c	Fri Dec 12 21:36:38 2008 +0900
@@ -1,4 +1,5 @@
 #include "pidgin-twitter.h"
+#include "purple_internal.h"
 
 extern GHashTable *icon_hash[];
 extern GRegex *regp[];
@@ -228,10 +229,8 @@
         g_match_info_free(match_info);
     }
 
-    /* find out basename */
+    /* find out extension */
     gchar *slash = strrchr(url, '/');
-    *slash = '\0';
-
     gchar *lower = g_ascii_strdown(slash+1, -1);
 
     if(strstr(lower, ".png"))
@@ -387,7 +386,6 @@
     if(data->pixbuf) {
         twitter_debug("%s's icon has already been downloaded\n",
                       user_name);
-
         goto fin_got_icon_cb;
     }
 
@@ -435,6 +433,19 @@
     if(hash)
         g_hash_table_insert(hash, g_strdup(user_name), data);
 
+    /* find out extension */
+    gchar *slash = strrchr(url_data->url, '/');
+    gchar *lower = g_ascii_strdown(slash+1, -1);
+
+    if(strstr(lower, ".png"))
+        data->img_type = "png";
+    else if(strstr(lower, ".gif"))
+        data->img_type = "gif";
+    else if(strstr(lower, ".jpg") || strstr(lower, ".jpeg"))
+        data->img_type = "jpg";
+
+    g_free(lower);
+
     dirname = purple_prefs_get_string(OPT_ICON_DIR);
 
     /* store retrieved image to a file in icon dir */