changeset 21879:5417c26b5ecc

propagate from branch 'im.pidgin.pidgin' (head 40d42b30664156f7f561606dd28fc01256a8ca36) to branch 'im.pidgin.pidgin.sadrul.tooltips' (head 076fb2999e7fc1cf1042c25d00f69e8c909b1fe7)
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Thu, 06 Dec 2007 22:46:51 +0000
parents 9d1002929512 (current diff) 8f82dc5e0b76 (diff)
children b93c099dcfe4
files
diffstat 9 files changed, 22 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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;
 }
 
--- 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);
--- 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);
--- 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);
--- 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
--- 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);
 }
--- 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);
--- 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("&apos;"))
 		pln = "\'";
-	else if(*(text+1) == '#' && (sscanf(text, "&#%u;", &pound) == 1) &&
-			pound != 0 && *(text+3+(gint)log10(pound)) == ';') {
+	else if(*(text+1) == '#' &&
+			(sscanf(text, "&#%u%1[;]", &pound, temp) == 2 || sscanf(text, "&#x%x%1[;]", &pound, temp) == 2) &&
+			pound != 0) {
 		static char buf[7];
 		int buflen = g_unichar_to_utf8((gunichar)pound, buf);
 		buf[buflen] = '\0';