# HG changeset patch # User Evan Schoenberg # Date 1298329008 0 # Node ID a3bfd9439d37c47509117ef20428545cc67cd650 # Parent 5523e81329c26695a39a13c06cd58ecc5740c387# Parent 6b2b8cc8e7ae4410c18378abf30d98eee716b8ba merge of '974d79cf8eb22b7138c9a3d7313e89585fd8b443' and 'a657534f694305a613db4946ca8ea9ab4c8f1c1d' diff -r 5523e81329c2 -r a3bfd9439d37 ChangeLog --- 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) diff -r 5523e81329c2 -r a3bfd9439d37 libpurple/protocols/oscar/family_feedbag.c --- 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); diff -r 5523e81329c2 -r a3bfd9439d37 libpurple/protocols/oscar/oscar.c --- 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) */