changeset 16519:f2332c0da79f

merge of '2f959ba8a0fdac370ac610e60f6a4cd09525d928' and '49b3bf5604009f3f19eee42ccd7b9c061a9109f1'
author Richard Laager <rlaager@wiktel.com>
date Fri, 27 Apr 2007 06:19:04 +0000
parents 2ae39a056179 (diff) f1513338fbdb (current diff)
children 382862262d0b
files
diffstat 4 files changed, 33 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/finch/gntblist.c	Fri Apr 27 05:15:59 2007 +0000
+++ b/finch/gntblist.c	Fri Apr 27 06:19:04 2007 +0000
@@ -114,6 +114,7 @@
 static void account_signed_on_cb(void);
 
 /* Sort functions */
+static int blist_node_compare_position(PurpleBlistNode *n1, PurpleBlistNode *n2);
 static int blist_node_compare_text(PurpleBlistNode *n1, PurpleBlistNode *n2);
 static int blist_node_compare_status(PurpleBlistNode *n1, PurpleBlistNode *n2);
 static int blist_node_compare_log(PurpleBlistNode *n1, PurpleBlistNode *n2);
@@ -1778,6 +1779,15 @@
 }
 
 static int
+blist_node_compare_position(PurpleBlistNode *n1, PurpleBlistNode *n2)
+{
+	while ((n1 = n1->prev) != NULL)
+		if (n1 == n2)
+			return 1;
+	return -1;
+}
+
+static int
 blist_node_compare_text(PurpleBlistNode *n1, PurpleBlistNode *n2)
 {
 	const char *s1, *s2;
@@ -1788,10 +1798,6 @@
 	
 	switch (n1->type)
 	{
-		case PURPLE_BLIST_GROUP_NODE:
-			s1 = ((PurpleGroup*)n1)->name;
-			s2 = ((PurpleGroup*)n2)->name;
-			break;
 		case PURPLE_BLIST_CHAT_NODE:
 			s1 = purple_chat_get_name((PurpleChat*)n1);
 			s2 = purple_chat_get_name((PurpleChat*)n2);
@@ -1805,7 +1811,7 @@
 			s2 = purple_contact_get_alias((PurpleContact*)n2);
 			break;
 		default:
-			return -1;
+			return blist_node_compare_position(n1, n2);
 	}
 
 	us1 = g_utf8_strup(s1, -1);
@@ -1836,6 +1842,7 @@
 				return ret;
 			break;
 		default:
+			return blist_node_compare_position(n1, n2);
 			break;
 	}
 
@@ -1882,6 +1889,7 @@
 				return ret;
 			break;
 		default:
+			return blist_node_compare_position(n1, n2);
 			break;
 	}
 	ret = blist_node_compare_text(n1, n2);
--- a/libpurple/imgstore.c	Fri Apr 27 05:15:59 2007 +0000
+++ b/libpurple/imgstore.c	Fri Apr 27 06:19:04 2007 +0000
@@ -71,13 +71,13 @@
 	PurpleStoredImage *img = purple_imgstore_add(data, size, filename);
 	img->id = ++nextid;
 
-	g_hash_table_insert(imgstore, GINT_TO_POINTER(img->id), img);
+	g_hash_table_insert(imgstore, &(img->id), img);
 
 	return img->id;
 }
 
 PurpleStoredImage *purple_imgstore_find_by_id(int id) {
-	PurpleStoredImage *img = g_hash_table_lookup(imgstore, GINT_TO_POINTER(id));
+	PurpleStoredImage *img = g_hash_table_lookup(imgstore, &id);
 
 	if (img != NULL)
 		purple_debug_misc("imgstore", "retrieved image id %d\n", img->id);
@@ -155,7 +155,7 @@
 		purple_signal_emit(purple_imgstore_get_handle(),
 		                   "image-deleting", img);
 		if (img->id)
-			g_hash_table_remove(imgstore, GINT_TO_POINTER(img->id));
+			g_hash_table_remove(imgstore, &img->id);
 
 		g_free(img->data);
 		g_free(img->filename);
--- a/libpurple/prefs.c	Fri Apr 27 05:15:59 2007 +0000
+++ b/libpurple/prefs.c	Fri Apr 27 06:19:04 2007 +0000
@@ -1120,7 +1120,7 @@
 		if(newchild == NULL) {
 			/* no rename happened, we weren't able to find the new pref */
 			char *tmpname = pref_full_name(child);
-			purple_debug_error("prefs", "Unable to find rename pref for %s", tmpname);
+			purple_debug_error("prefs", "Unable to find rename pref for %s\n", tmpname);
 			g_free(tmpname);
 		}
 	}
--- a/libpurple/protocols/jabber/buddy.c	Fri Apr 27 05:15:59 2007 +0000
+++ b/libpurple/protocols/jabber/buddy.c	Fri Apr 27 06:19:04 2007 +0000
@@ -955,22 +955,23 @@
 					gboolean photo = (strcmp(child->name, "PHOTO") == 0);
 
 					data = purple_base64_decode(bintext, &size);
-
-					jbi->vcard_imgids = g_slist_prepend(jbi->vcard_imgids, GINT_TO_POINTER(purple_imgstore_add_with_id(g_memdup(data, size), size, "logo.png")));
-					g_string_append_printf(info_text,
-							"<b>%s:</b> <img id='%d'><br/>",
-							photo ? _("Photo") : _("Logo"),
-							GPOINTER_TO_INT(jbi->vcard_imgids->data));
+					if (data) {
+						jbi->vcard_imgids = g_slist_prepend(jbi->vcard_imgids, GINT_TO_POINTER(purple_imgstore_add_with_id(g_memdup(data, size), size, "logo.png")));
+						g_string_append_printf(info_text,
+								"<b>%s:</b> <img id='%d'><br/>",
+								photo ? _("Photo") : _("Logo"),
+								GPOINTER_TO_INT(jbi->vcard_imgids->data));
+	
+						purple_cipher_digest_region("sha1", (guchar *)data, size,
+								sizeof(hashval), hashval, NULL);
+						p = hash;
+						for(i=0; i<20; i++, p+=2)
+							snprintf(p, 3, "%02x", hashval[i]);
 
-					purple_cipher_digest_region("sha1", (guchar *)data, size,
-							sizeof(hashval), hashval, NULL);
-					p = hash;
-					for(i=0; i<20; i++, p+=2)
-						snprintf(p, 3, "%02x", hashval[i]);
-
-					purple_buddy_icons_set_for_user(js->gc->account, bare_jid,
-							data, size, hash);
-					g_free(bintext);
+						purple_buddy_icons_set_for_user(js->gc->account, bare_jid,
+								data, size, hash);
+						g_free(bintext);
+					}
 				}
 			}
 			g_free(text);