# HG changeset patch # User Elliott Sales de Andrade # Date 1233285269 0 # Node ID f5188d4d84e3d9e5f006a3f3e73ee402187d8fc4 # Parent c434094cf298cf660459c38a30b4e7b9675ba5a1 Move the check for whether to update the server alias out of nln_cmd and into msn_user_set_friendly_name instead. This is because it should be done for nln_cmd and iln_cmd (since we have the friendly name already from the address book). diff -r c434094cf298 -r f5188d4d84e3 libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Thu Jan 29 10:29:25 2009 +0000 +++ b/libpurple/protocols/msn/notification.c Fri Jan 30 03:14:29 2009 +0000 @@ -1094,8 +1094,8 @@ return; } - serv_got_alias(gc, passport, friendly); - msn_user_set_friendly_name(user, friendly); + if (msn_user_set_friendly_name(user, friendly)) + serv_got_alias(gc, passport, friendly); g_free(friendly); msn_user_set_object(user, msnobj); @@ -1220,7 +1220,7 @@ MsnObject *msnobj; unsigned long clientid; int networkid; - const char *state, *passport, *friendly, *old_friendly; + const char *state, *passport, *friendly; session = cmdproc->session; account = session->account; @@ -1234,11 +1234,9 @@ user = msn_userlist_find_user(session->userlist, passport); if (user == NULL) return; - old_friendly = msn_user_get_friendly_name(user); - if (!old_friendly || (old_friendly && (!friendly || strcmp(old_friendly, friendly)))) + if (msn_user_set_friendly_name(user, friendly)) { serv_got_alias(gc, passport, friendly); - msn_user_set_friendly_name(user, friendly); } if (cmd->param_count == 6) diff -r c434094cf298 -r f5188d4d84e3 libpurple/protocols/msn/user.c --- a/libpurple/protocols/msn/user.c Thu Jan 29 10:29:25 2009 +0000 +++ b/libpurple/protocols/msn/user.c Fri Jan 30 03:14:29 2009 +0000 @@ -177,13 +177,18 @@ user->passport = g_strdup(passport); } -void +gboolean msn_user_set_friendly_name(MsnUser *user, const char *name) { g_return_if_fail(user != NULL); + if (user->friendly_name && name && !strcmp(user->friendly_name, name)) + return FALSE; + g_free(user->friendly_name); user->friendly_name = g_strdup(name); + + return TRUE; } void diff -r c434094cf298 -r f5188d4d84e3 libpurple/protocols/msn/user.h --- a/libpurple/protocols/msn/user.h Thu Jan 29 10:29:25 2009 +0000 +++ b/libpurple/protocols/msn/user.h Fri Jan 30 03:14:29 2009 +0000 @@ -178,8 +178,10 @@ * * @param user The user. * @param name The friendly name. + * + * @returns TRUE is name actually changed, FALSE otherwise. */ -void msn_user_set_friendly_name(MsnUser *user, const char *name); +gboolean msn_user_set_friendly_name(MsnUser *user, const char *name); /** * Sets the buddy icon for a local user.