# HG changeset patch # User Sadrul Habib Chowdhury # Date 1196981211 0 # Node ID 5417c26b5ecc0f618beee5c5669acf2add736338 # Parent 9d100292951246bd29fc0b9f71849c513c955422# Parent 8f82dc5e0b7646fc589eefd0ae491063d3adf9fb propagate from branch 'im.pidgin.pidgin' (head 40d42b30664156f7f561606dd28fc01256a8ca36) to branch 'im.pidgin.pidgin.sadrul.tooltips' (head 076fb2999e7fc1cf1042c25d00f69e8c909b1fe7) diff -r 9d1002929512 -r 5417c26b5ecc COPYRIGHT --- a/COPYRIGHT Thu Dec 06 08:44:34 2007 +0000 +++ b/COPYRIGHT Thu Dec 06 22:46:51 2007 +0000 @@ -309,6 +309,7 @@ Tim Ringenbach Dennis Ristuccia Lee Roach +Eion Robb Rhett Robinson Luciano Miguel Ferreira Rocha Andrew Rodland diff -r 9d1002929512 -r 5417c26b5ecc libpurple/account.c --- a/libpurple/account.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/account.c Thu Dec 06 22:46:51 2007 +0000 @@ -2529,22 +2529,19 @@ g_return_val_if_fail(name != NULL, NULL); - who = g_strdup(purple_normalize(NULL, name)); - for (l = purple_accounts_get_all(); l != NULL; l = l->next) { account = (PurpleAccount *)l->data; - if (!strcmp(purple_normalize(NULL, purple_account_get_username(account)), who) && + who = g_strdup(purple_normalize(account, name)); + if (!strcmp(purple_normalize(account, purple_account_get_username(account)), who) && (!protocol_id || !strcmp(account->protocol_id, protocol_id))) { - + g_free(who); break; } - + g_free(who); account = NULL; } - g_free(who); - return account; } diff -r 9d1002929512 -r 5417c26b5ecc libpurple/pounce.c --- a/libpurple/pounce.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/pounce.c Thu Dec 06 22:46:51 2007 +0000 @@ -181,7 +181,8 @@ child = xmlnode_new_child(node, "account"); xmlnode_set_attrib(child, "protocol", pouncer->protocol_id); - xmlnode_insert_data(child, purple_account_get_username(pouncer), -1); + xmlnode_insert_data(child, + purple_normalize(pouncer, purple_account_get_username(pouncer)), -1); child = xmlnode_new_child(node, "pouncee"); xmlnode_insert_data(child, purple_pounce_get_pouncee(pounce), -1); diff -r 9d1002929512 -r 5417c26b5ecc libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/protocols/msn/notification.c Thu Dec 06 22:46:51 2007 +0000 @@ -1579,6 +1579,7 @@ { xmlnode * root; gchar * buf; + int xmllen; g_return_if_fail(cmd->payload != NULL); @@ -1588,10 +1589,10 @@ return; } - buf = xmlnode_to_formatted_str(root, NULL); + buf = xmlnode_to_formatted_str(root, &xmllen); /* get the payload content */ - purple_debug_info("MSNP14","GCF command payload:\n%s\n",buf); + purple_debug_info("MSNP14","GCF command payload:\n%.*s\n", xmllen, buf); g_free(buf); xmlnode_free(root); diff -r 9d1002929512 -r 5417c26b5ecc libpurple/protocols/msn/session.c --- a/libpurple/protocols/msn/session.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/protocols/msn/session.c Thu Dec 06 22:46:51 2007 +0000 @@ -74,6 +74,7 @@ msn_userlist_destroy(session->userlist); + g_free(session->psm); g_free(session->passport_info.t); g_free(session->passport_info.p); g_free(session->passport_info.kv); diff -r 9d1002929512 -r 5417c26b5ecc libpurple/protocols/msn/state.c --- a/libpurple/protocols/msn/state.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/protocols/msn/state.c Thu Dec 06 22:46:51 2007 +0000 @@ -238,13 +238,15 @@ media = create_media_string(presence); g_free(session->psm); session->psm = msn_build_psm(statusline_stripped, media, NULL); - g_free(statusline_stripped); payload = session->psm; purple_debug_misc("MSNP14","Sending UUX command with payload: %s\n",payload); trans = msn_transaction_new(cmdproc, "UUX", "%d", strlen(payload)); msn_transaction_set_payload(trans, payload, strlen(payload)); msn_cmdproc_send_trans(cmdproc, trans); + + g_free(statusline_stripped); + g_free(media); } void diff -r 9d1002929512 -r 5417c26b5ecc libpurple/protocols/msn/user.c --- a/libpurple/protocols/msn/user.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/protocols/msn/user.c Thu Dec 06 22:46:51 2007 +0000 @@ -83,6 +83,7 @@ g_free(user->media.artist); g_free(user->media.title); g_free(user->media.album); + g_free(user->statusline); g_free(user); } diff -r 9d1002929512 -r 5417c26b5ecc libpurple/savedstatuses.c --- a/libpurple/savedstatuses.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/savedstatuses.c Thu Dec 06 22:46:51 2007 +0000 @@ -243,7 +243,9 @@ child = xmlnode_new_child(node, "account"); xmlnode_set_attrib(child, "protocol", purple_account_get_protocol_id(substatus->account)); - xmlnode_insert_data(child, purple_account_get_username(substatus->account), -1); + xmlnode_insert_data(child, + purple_normalize(substatus->account, + purple_account_get_username(substatus->account)), -1); child = xmlnode_new_child(node, "state"); xmlnode_insert_data(child, purple_status_type_get_id(substatus->type), -1); diff -r 9d1002929512 -r 5417c26b5ecc libpurple/util.c --- a/libpurple/util.c Thu Dec 06 08:44:34 2007 +0000 +++ b/libpurple/util.c Thu Dec 06 22:46:51 2007 +0000 @@ -921,6 +921,7 @@ { const char *pln; int len, pound; + char temp[2]; if (!text || *text != '&') return NULL; @@ -943,8 +944,9 @@ pln = "\302\256"; /* or use g_unichar_to_utf8(0xae); */ else if(IS_ENTITY("'")) pln = "\'"; - else if(*(text+1) == '#' && (sscanf(text, "&#%u;", £) == 1) && - pound != 0 && *(text+3+(gint)log10(pound)) == ';') { + else if(*(text+1) == '#' && + (sscanf(text, "&#%u%1[;]", £, temp) == 2 || sscanf(text, "&#x%x%1[;]", £, temp) == 2) && + pound != 0) { static char buf[7]; int buflen = g_unichar_to_utf8((gunichar)pound, buf); buf[buflen] = '\0';