changeset 31254:1192dade09c9

merge of '68f895b33b8b9c0317cb580b90d3df28b85065b6' and 'bb8b5af65aed1351167474bd132cff898ef21f24'
author Evan Schoenberg <evan.s@dreskin.net>
date Mon, 21 Feb 2011 22:57:27 +0000
parents 90bff83c91cf (current diff) c5550332b9bd (diff)
children 65999cb4fc40
files libpurple/protocols/irc/parse.c
diffstat 4 files changed, 12 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Feb 21 22:56:00 2011 +0000
+++ b/ChangeLog	Mon Feb 21 22:57:27 2011 +0000
@@ -4,6 +4,10 @@
 	General:
 	* Our bundled libgadu should now build on HP-UX.
 
+	AIM:
+	* Fix a bug where some buddies from your buddy list might not show up.
+	  Affected non-English ICQ users the most. (#13386)
+
 	XMPP:
 	* Fix building on platforms with an older glib (inadvertantly broken in
 	  2.7.10).  (#13329)
--- a/libpurple/protocols/jabber/jabber.c	Mon Feb 21 22:56:00 2011 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Mon Feb 21 22:57:27 2011 +0000
@@ -1984,10 +1984,6 @@
 	jabber_remove_feature(namespace);
 
 	jabber_features = g_list_append(jabber_features, feat);
-
-	/* Our cached caps_hash, if present, is now incorrect; force recalculation next time it is needed */
-	g_free(js->caps_hash);
-	js->caps_hash = NULL;
 }
 
 void jabber_remove_feature(const char *namespace) {
@@ -2069,10 +2065,6 @@
 	ident->name = g_strdup(name);
 	jabber_identities = g_list_insert_sorted(jabber_identities, ident,
 	                                         jabber_identity_compare);
-
-	/* Our cached caps_hash, if present, is now incorrect; force recalculation next time it is needed */
-	g_free(js->caps_hash);
-	js->caps_hash = NULL;	
 }
 
 static void jabber_identities_destroy(void)
--- a/libpurple/protocols/oscar/family_feedbag.c	Mon Feb 21 22:56:00 2011 +0000
+++ b/libpurple/protocols/oscar/family_feedbag.c	Mon Feb 21 22:57:27 2011 +0000
@@ -824,7 +824,7 @@
 		return -EINVAL;
 
 	if (aim_ssi_itemlist_find(od->ssi.local, 0x0000, 0x0000) == NULL)
-		aim_ssi_itemlist_add(&od->ssi.local, NULL, 0x0000, 0x0000, list_type, NULL);
+		aim_ssi_itemlist_add(&od->ssi.local, NULL, 0x0000, 0x0000, AIM_SSI_TYPE_GROUP, NULL);
 
 	aim_ssi_itemlist_add(&od->ssi.local, name, 0x0000, 0xFFFF, list_type, NULL);
 	return aim_ssi_sync(od);
--- a/libpurple/protocols/oscar/oscar.c	Mon Feb 21 22:56:00 2011 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Mon Feb 21 22:57:27 2011 +0000
@@ -4000,9 +4000,12 @@
 	/*** Begin code for adding from server list to local list ***/
 
 	for (curitem=od->ssi.local; curitem; curitem=curitem->next) {
-		if (curitem->name && !g_utf8_validate(curitem->name, -1, NULL))
+		if (curitem->name && !g_utf8_validate(curitem->name, -1, NULL)) {
 			/* Got node with invalid UTF-8 in the name.  Skip it. */
-			break;
+			purple_debug_warning("oscar", "ssi: server list contains item of "
+					"type 0x%04hhx with a non-utf8 name\n", curitem->type);
+			continue;
+		}
 
 		switch (curitem->type) {
 			case AIM_SSI_TYPE_BUDDY: { /* Buddy */
@@ -4051,17 +4054,10 @@
 			} break;
 
 			case AIM_SSI_TYPE_GROUP: { /* Group */
-				char *gname;
-				char *gname_utf8;
-
-				gname = curitem->name;
-				gname_utf8 = oscar_utf8_try_convert(account, od, gname);
-
-				if (gname_utf8 != NULL && purple_find_group(gname_utf8) == NULL) {
-					g = purple_group_new(gname_utf8);
+				if (curitem->name != NULL && purple_find_group(curitem->name) == NULL) {
+					g = purple_group_new(curitem->name);
 					purple_blist_add_group(g, NULL);
 				}
-				g_free(gname_utf8);
 			} break;
 
 			case AIM_SSI_TYPE_PERMIT: { /* Permit buddy (unless we're on ICQ) */