diff src/protocols/oscar/oscar.c @ 7054:7c04a0775918

[gaim-migrate @ 7617] WinGaim 0.69 moved the gaim settings directory exposing an oscar bug.. What to do if a buddy icon cache copy does not exist but a check sum does. Also moved win32 code to initialize gaim settings dir before core initializations. committer: Tailor Script <tailor@pidgin.im>
author Herman Bloggs <hermanator12002@yahoo.com>
date Tue, 30 Sep 2003 05:36:28 +0000
parents 237ad253dd34
children 9946001989a3
line wrap: on
line diff
--- a/src/protocols/oscar/oscar.c	Tue Sep 30 03:06:50 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Tue Sep 30 05:36:28 2003 +0000
@@ -1824,10 +1824,19 @@
 	if (info->iconcsumlen) {
 		char *b16, *saved_b16;
 		GaimBuddy *b;
+                FILE *file;
 
 		b16 = tobase16(info->iconcsum, info->iconcsumlen);
 		b = gaim_find_buddy(gc->account, info->sn);
-		saved_b16 = gaim_buddy_get_setting(b, "icon_checksum");
+                /* If for some reason the checksum is valid, but cached file is not..
+                   we want to know. */
+                if((file = fopen(gaim_buddy_get_setting(b, "buddy_icon"), "rb"))) {
+                        fclose(file);
+                        saved_b16 = gaim_buddy_get_setting(b, "icon_checksum");
+                }
+                else
+                        saved_b16 = NULL;
+
 		if (!b16 || !saved_b16 || strcmp(b16, saved_b16)) {
 			GSList *cur = od->requesticon;
 			while (cur && aim_sncmp((char *)cur->data, info->sn))