From: Mark D. <the...@us...> - 2004-08-07 22:54:36
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6785/src Modified Files: gtkaccount.c Log Message: From nosnilmot: When setting an icon for your account... 1) When saving the icon to the cache directory, create the directory if it does not exist 2) Only save the icon if it is in a savable format Index: gtkaccount.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkaccount.c,v retrieving revision 1.142 retrieving revision 1.143 diff -u -d -p -r1.142 -r1.143 --- gtkaccount.c 7 Aug 2004 17:04:07 -0000 1.142 +++ gtkaccount.c 7 Aug 2004 22:54:27 -0000 1.143 @@ -573,11 +573,24 @@ convert_buddy_icon(GaimPlugin *plugin, c g_error_free(error); return NULL; } + + if (!g_file_test(dirname, G_FILE_TEST_IS_DIR)) { + gaim_debug_info("buddyicon", "Creating icon cache directory.\n"); + + if (mkdir(dirname, S_IRUSR | S_IWUSR | S_IXUSR) < 0) { + gaim_debug_error("buddyicon", + "Unable to create directory %s: %s\n", + dirname, strerror(errno)); + return NULL; + } + } + for (i = 0; prpl_formats[i]; i++) { gaim_debug_info("buddyicon", "Converting buddy icon to %s as %s\n", prpl_formats[i], filename); /* The gdk-pixbuf documentation is wrong. gdk_pixbuf_save returns TRUE if it was successful, * FALSE if an error was set. */ - if (gdk_pixbuf_save (pixbuf, filename, prpl_formats[i], &error, NULL) == TRUE) + if (gdk_pixbuf_format_is_writable(format) && + gdk_pixbuf_save(pixbuf, filename, prpl_formats[i], &error, NULL) == TRUE) break; } if (!error) { |