changeset 31699:a3bfd9439d37

merge of '974d79cf8eb22b7138c9a3d7313e89585fd8b443' and 'a657534f694305a613db4946ca8ea9ab4c8f1c1d'
author Evan Schoenberg <evan.s@dreskin.net>
date Mon, 21 Feb 2011 22:56:48 +0000
parents 5523e81329c2 (current diff) 6b2b8cc8e7ae (diff)
children ae838d29c897
files
diffstat 3 files changed, 12 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Feb 21 22:55:19 2011 +0000
+++ b/ChangeLog	Mon Feb 21 22:56:48 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/oscar/family_feedbag.c	Mon Feb 21 22:55:19 2011 +0000
+++ b/libpurple/protocols/oscar/family_feedbag.c	Mon Feb 21 22:56:48 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:55:19 2011 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Mon Feb 21 22:56:48 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) */