# HG changeset patch # User Richard Laager # Date 1157833668 0 # Node ID 1f81919515ae43f8b04f6a753d63ca60722054ac # Parent af856551902b5e0ecc8db8a2a1e51dbfd5c159e5 [gaim-migrate @ 17203] Part of SF Patch #1554627 from Richard Nelson (wabz) "The msn protocol currently calls serv_got_alias on all buddy status changes (as they are NLN commands), resulting in lots of unnecessary blist.xml write schedules. serv_got_alias already checks if the alias has actually changed before printing to the conv. The first hunk in this patch checks it a bit earlier." The second hunk checks in the MSN prpl, which also avoids an extra call to msn_user_set_friendly_name(). committer: Tailor Script diff -r af856551902b -r 1f81919515ae libgaim/protocols/msn/notification.c --- a/libgaim/protocols/msn/notification.c Sat Sep 09 19:41:34 2006 +0000 +++ b/libgaim/protocols/msn/notification.c Sat Sep 09 20:27:48 2006 +0000 @@ -664,7 +664,7 @@ MsnUser *user; MsnObject *msnobj; int clientid; - const char *state, *passport, *friendly; + const char *state, *passport, *friendly, *old_friendly; session = cmdproc->session; account = session->account; @@ -676,9 +676,12 @@ user = msn_userlist_find_user(session->userlist, passport); - serv_got_alias(gc, passport, friendly); - - msn_user_set_friendly_name(user, friendly); + old_friendly = msn_user_get_friendly_name(user); + if (old_friendly && strcmp(old_friendly, friendly)) + { + serv_got_alias(gc, passport, friendly); + msn_user_set_friendly_name(user, friendly); + } if (session->protocol_ver >= 9) { diff -r af856551902b -r 1f81919515ae libgaim/server.c --- a/libgaim/server.c Sat Sep 09 19:41:34 2006 +0000 +++ b/libgaim/server.c Sat Sep 09 20:27:48 2006 +0000 @@ -215,12 +215,13 @@ for (buds = buddies; buds; buds = buds->next) { b = buds->data; + if (b->server_alias && !strcmp(b->server_alias, alias)) + continue; gaim_blist_server_alias_buddy(b, alias); conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, b->name, account); - if (conv != NULL && b->server_alias != NULL && - strcmp(b->server_alias, alias)) + if (conv != NULL) { char *tmp = g_strdup_printf(_("%s is now known as %s.\n"), who, alias);